9
Ceci est aussi loin que je suis devenu,Comment faire une boucle dans un boost :: mpl :: list?
#include <boost/mpl/list.hpp>
#include <algorithm>
namespace mpl = boost::mpl;
class RunAround {};
class HopUpAndDown {};
class Sleep {};
template<typename Instructions> int doThis();
template<> int doThis<RunAround>() { /* run run run.. */ return 3; }
template<> int doThis<HopUpAndDown>() { /* hop hop hop.. */ return 2; }
template<> int doThis<Sleep>() { /* zzz.. */ return -2; }
int main()
{
typedef mpl::list<RunAround, HopUpAndDown, Sleep> acts;
// std::for_each(mpl::begin<acts>::type, mpl::end<acts>::type, doThis<????>);
return 0;
};
Comment remplir ce? (Je ne sais pas si je devrais utiliser std :: for_each, juste une supposition basée sur une autre réponse ici)
Merci - est-il un moyen de le faire en utilisant boost :: bind au lieu de l'objet wrapper? – Kyle
@Kyle: Je ne pense pas - je ne connais aucun utilitaire dans Boost.Bind qui vous génère les foncteurs requis avec un 'template()' basé sur un template. –
@GeorgFritzsche: Existe-t-il un moyen de faire de 'do_this_wrapper' un lambda (à partir de C++ 11/14/17)? –