Недавно я обновился от C++ Builder XE8 до Rad Studio 10 Seattle. Я пытаюсь использовать новый компилятор Clang, но у меня проблема.Недопустимые операнды в двоичном выражении на TGridOptions
Об одном классе пользовательские сетки у меня есть следующие строки кода:
__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, который заставляет его выкидывать ошибку, где нет компилятора Classic Boreland? Как я могу реализовать оператор <<
, чтобы позволить мне установить свойство options?
Edit:
я исправил мой синтаксис согласно предложению Реми.
__property Options = {default = TGridOptions() << TGridOption::AlternatingRowBackground << TGridOption::RowSelect};
Однако, теперь я получаю следующее сообщение об ошибке: 'expression is not an integral constant expression'
Согласно this question ответ был поместить код внутри функции. Однако, поскольку я объявляю это свойство в файле заголовка, я не уверен, как это сделать. Есть ли что-то еще, что мне не хватает?
[другой вопрос] (http://stackoverflow.com/questions/28263339/) не имеет ничего общего с C + + Builder или свойства. –
@RemyLebeau Право. Поскольку ошибка была одна и та же, я думал, что это может по крайней мере направить меня в правильном направлении. –