typedef vector<long,float,short,double,float,long,long double> types;
typedef fold<
types
, int_<0>
, if_< is_float<_2>,next<_1>,_1 >
>::type number_of_floats;
BOOST_MPL_ASSERT_RELATION( number_of_floats::value, ==, 4 );
我不明白 fold 的工作方式,为什么是 int_<0>?为什么是_float< _2 >?
有人可以给我一些线索来理解这个“功能”吗?谢谢