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
方法的第二行,所有其他情况编译正常。
编辑 对不起,我在示例中粘贴了错误的构造函数,现在已修复。当被括号括起来时,带有布尔参数的构造函数可以编译,但无参数的构造函数不会编译。