forall(T) struct wrap { T val; }; forall(T) int ?==? (wrap(T) lhs, wrap(T) rhs) { return 0; } /* struct wrap(int) 0; /*/ forall(T) struct wrap(T) 0; //*/ int main(int argc, char const *argv[]) { wrap(int) test; if(test == 0) { return 1; } return 0; }