bool foo( int* p )
{
return false;
}
int* bar ( )
{
int* p;
return p;
}
int main() {
if ( int* p = bar() && foo( p ) )
//if ( ((int* p = bar()) != NULL ) && (foo( p )) ) // another variant
{
}
return 0;
}
私は GCC 4.3.4 と VS 2008 を取得します。すべてが正常に動作するerror: cannot convert ‘bool’ to ‘int*’ in initialization
場合のみ。if ( int* p = bar())
-statement のp
前に初期化できることはわかっていますが、示したバリアントに興味があります。if