void g( float f ) {} void g( int i ) {} void f( int a ) { int b; float c; g( a ? b : c ); g( a && c ); g( a || b ); } void g() { int a; struct { int b; } a; if ( a ) { while ( a ) { int *b; for ( b; a; b ) { } } } } #include struct test_t { int x; }; int ?!=?( test_t lhs, int rhs ) { sout | lhs.x | " "; return lhs.x != 0; } int main(int argc, char const *argv[]) { test_t true_val, false_val; true_val.x = 1; false_val.x = 0; true_val && false_val; sout | endl; true_val || false_val; sout | endl; false_val && true_val; sout | endl; false_val || true_val; sout | endl; return 0; }