这是我目前为止所做的,
#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;
};
我该如何完成这个任务?(我不确定是否应该使用 std::for_each,只是根据其他答案猜测的)
operator()
的所需函数对象。 - Georg Fritzschedo_this_wrapper
变成一个lambda表达式(在C++11/14/17中)? - Adi Shavit