C++ 演算子の代替表現

すごく今更な話ですがC++の特定の演算子はキーワードに置き換えることができます。

CとC++の演算子 - Wikipedia

#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辺りはそれなりに見やすくなる気もします。