@GMan: я не предлагал отказываться от использования шаблонов. Я сказал, что использование само по себе boost (или, точнее, тяжелого метапрограммирования шаблонов) может вызвать головную боль при обслуживании из-за длительного времени компиляции, длинного времени соединения, ужасных сообщений об ошибках и ужасного опыта отладки глубоких стековых трассировок.

могу понять, в чем реальные преимущества использования Boost.Phoenix.

Когда я использую его с грамматикой Boost.Spirit, это действительно полезно:

double_[ boost::phoenix::push_back( boost::phoenix::ref( v ), _1 ) ]

Когда я использую его для лямбда-функций, это также полезно и элегантно:

boost::range::for_each( my_string, if_ ( '\\' == arg1 ) [ arg1 = '/' ] );

Но каковы преимущества всего остального в этой библиотеке? В документации написано: «Функторы повсюду». Я не понимаю, что в этом хорошего?

Ответы на вопрос(1)

Ваш ответ на вопрос