class MBool
{
protected:
bool mData;
public:
MBool() : mData(false) {}
MBool(bool Data) { mData = Data; }
};
void myFunc ( const MBool& rBool )
{
}
bool test()
{
myFunc( MBool() );
myFunc( ( MBool() ) ); // <-- Error E2188 Expression syntax
myFunc( MBool( false ) );
myFunc( ( MBool( false ) ) );
}
誰かが上記のエラーを説明するのを手伝ってもらえますか? Embarcadero の XE7 を使用して発生します。同じコードは、Visual Studio を使用して正常にコンパイルされます。XE7 での問題は、示されているように、testメソッドの 2 行目でのみ発生し、他のすべてのケースでは正常にコンパイルされます。
編集 申し訳ありませんが、私の例に間違ったコンストラクターを貼り付けましたが、修正されました。括弧で囲まれた場合、ブール値パラメーターを持つコンストラクターはコンパイルされますが、パラメーターなしのコンストラクターはコンパイルされません。