unsigned_int<> supports conversion to bool and operator ! ().
unsigned_int< 128 > a( 10 ), b( 0 ); CHECK( (bool)a ); CHECK( !( !a ) ); CHECK( bool( 10 ) == bool( a ) ); CHECK( !(bool)b ); CHECK( !b ); CHECK( bool( 0 ) == bool( b ) );
Test Result: gcc34 Passed, msvc80 Passed, msvc71 Passed
Output
Ok