Позаботьтесь о том, чтобы оператор запятой был перегружен на C++. Фактическое поведение может, таким образом, сильно отличаться от ожидаемого.
В качестве примера Boost.Spirit использует оператор запятой довольно умно, чтобы реализовать инициализаторы списка для таблиц символов. Таким образом, он делает следующий синтаксис возможно и целесообразно: (! Намеренно)
keywords = "and", "or", "not", "xor";
Обратите внимание, что из-за приоритета операторов, код идентичен
(((keywords = "and"), "or"), "not"), "xor";
То есть, первый оператор называется это ключевые слова .оператор = ("и"), который возвращает объект-посредник, на который вызывается оставшийся оператор, s:
keywords.operator =("and").operator ,("or").operator ,("not").operator ,("xor");