#include <boost/phoenix/statement/switch.hpp>
Синтаксис это:
switch_(integral_expression)
[
case_<integral_value>(sequenced_statements),
...
default_(sequenced_statements)
]
Перечень дел, разделенных запятой, и может быть предоставлен необязательный по умолчанию. В отличие от обычного заявления о переключателе, случаи не проходят.
Пример: Этот код распечатывает<"one">,<"two">или<"other value">в зависимости от фактического значения элемента:
std::for_each(c.begin(), c.end(),
switch_(arg1)
[
case_<1>(std::cout << val("one") << '\n'),
case_<2>(std::cout << val("two") << '\n'),
default_(std::cout << val("other value") << '\n')
]
);