Проблемы с бустом :: феникс :: функция

С помощью повышение :: феникс :: функции Я столкнулся с некоторыми проблемами. Насколько я знаю, эта ленивая функция запрашивает функтор в качестве параметра шаблона. Я должен определить класс / структуру функтора и затем передать его в качестве параметра шаблона для создания экземпляра. Но это слишком долго и излишне. Могу ли я использовать другой вызываемый тип для phoenix::function создание (ссылка на функцию / указатель и т. д.)? Я старался lambdas:

 const auto foo = [] { cout <<"Test"; }
const boost::phoenix::function<decltype(foo)> lazy;

но позвони lazy() не компилируется. Таким образом, вопрос есть ли альтернативы вместо классов функторов для быстрой однострочной phoenix::function создание?

3

Решение

Так как тип foo не является конструируемым по умолчанию, lazy нужен инициализатор:

boost::phoenix::function<decltype(foo)> lazy { foo };
5

Другие решения

Других решений пока нет …