C++ 演算子の代替表現
すごく今更な話ですがC++の特定の演算子はキーワードに置き換えることができます。
#include <iostream> #include <vector> void f() { int a=0xFFFF; bool b=true; std::vector<int> l = { true and false, // true && false 0xFFFF bitand 0x00FF, // 0xFFFF & 0x00FF a and_eq 0x00FF, // a &= 0xFF true or false, // true || false 0xFFFF bitor 0x00FF, // 0xFFFF | 0x00FF a or_eq 0xFF, // a |= 0xFF 0xFFFF xor 0x00FF, // 0xFFFF ^ 0x00FF a xor_eq 0xFF, // a ^= 0xFF not true, // ! true true not_eq false, // true != false compl 0x00FF, // ~ 0x00FF }; for (auto v : l) std::cout << v << std::endl; } void g( int bitand lvalue_ref, // int & int and rvalue_ref // int && ) { int i; int * p = bitand i; // & i } int main(int argc, char const* argv[]) { f(); int i; g(i, 0); return 0; }
使い所は全く思いつきませんが、not辺りはそれなりに見やすくなる気もします。