Можно ли создать встроенную лямбду, используя boost, который всегда вызывает исключение?
(этот вопрос следует из "Использование boost для создания лямбдыфункция, которая всегда возвращает истину ").
Предположим, у меня есть функция, которая принимает какой-либо вид предиката:
void Foo( boost::function<bool(int,int,int)> predicate );
Если я хочу вызвать его с помощью предикатакоторый всегда вызывает исключение, определите вспомогательную функцию:
bool AlwaysThrow( int, int, int ) { throw std::exception(); }
...
Foo( boost::bind( AlwaysThrow ) );
Но есть ли способ вызвать эту функцию (возможно, используя boost :: lambda) без необходимости определения отдельной функции?
(Примечание 1: я не могу использовать C ++ 0x.)
(Примечание 2: я упростил этот пример. Моя настоящая функция "предиката" невозвращает bool, он возвращает тип, у которого нет ctor по умолчанию.)