我最近从 C++ Builder XE8 升级到 Rad Studio 10 Seattle。我正在尝试使用新的 Clang 编译器,但遇到了问题。
在自定义网格类上,我有以下代码行:
__property Options = {default=TGridOption::AlternatingRowBackground << TGridOption::RowSelect};
这会导致编译器出现以下错误:
[CLANG Error] FmGridU.h(57): invalid operands to binary expression ('Fmx::Grid::TGridOption' and 'Fmx::Grid::TGridOption')
从我在其他问题中读到的内容来看,我需要做一些事情,比如实现我自己的<<
操作员。但是,我不确定我将如何去做。据我了解,当前代码是使用控制选项的标准方式。
新的 Clang 编译器有什么区别导致它抛出经典 Boreland 编译器没有的错误?如何实现<<
运算符以允许我设置 options 属性?
编辑:
根据 Remy 的建议,我已经更正了我的语法。
__property Options = {default = TGridOptions() << TGridOption::AlternatingRowBackground << TGridOption::RowSelect};
但是,现在我收到以下错误:
'expression is not an integral constant expression'
根据这个问题,答案是将代码放入函数中。但是,由于我在头文件中声明了这个属性,所以我不知道该怎么做。还有什么我想念的吗?