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 <fstream>

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;
}
