is_reflexive rewritten in C++