Est-il possible de créer un lambda en ligne en utilisant boost qui lance toujours une exception?Utiliser boost pour créer une fonction lambda qui lance toujours
(cette question fait suite à "Using boost to create a lambda function which always returns true").
Supposons que j'ai une fonction qui prend une certaine forme de prédicat:
void Foo(boost::function<bool(int,int,int)> predicate);
Si je veux l'appeler avec un prédicat qui jette toujours une exception, définir une fonction d'assistance:
bool AlwaysThrow(int, int, int) { throw std::exception(); }
...
Foo(boost::bind(AlwaysThrow));
Mais y at-il de toute façon à appeler cette fonction (éventuellement en utilisant boost :: lambda) sans avoir à définir une fonction séparée?
(Note 1:. Je ne peux pas utiliser C++ 0x)
(Note 2: J'ai simplifié cet exemple fonction Ma réelle "sous-jacente" ne renvoie pas bool,. retourne un type qui n'a pas de défaut-ctor.)