Boost.Phoenix
От: x-code  
Дата: 29.12.14 10:02
Оценка:
В продолжение темы про буст
Автор: x-code
Дата: 25.12.14

Изучаю и конспектирую понемногу документацию. Наткнулся на Boost.Phoenix.
И не понимаю, что дает эта библиотека в сравнении с обычными лямбда-функциями, boost.lambda и boost.bind.
"Все есть функции" — ну ОК. Функиональные обертки val и ref — понятно, вместо переменной делается функция которая возвращает эту переменную или ссылку на нее.
"arg" — уже менее понятно. Что за синтаксис
int i=3;
std::cout << arg1(i) << std::endl;        // prints 3

и как это увязывается с плейсхолдерами _1 _2 и т.д., при том что утверждается что arg1 и _1 это вроде как одно и то же?
"lazy statements" — вполне понятно, сделали набор функциональных объектов, эмулирующих работу обычных управляющих операторов. С квадратными скобками вместо фигурных красиво получилось
"lazy functions" — вообще непонятно, зачем это и чем обычные функции отличаются от таких?
И в целом вся библиотека для чего?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.