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 );
フォールドの仕組みがわかりません。なぜ int_<0> なのですか? なぜ is_float< _2 > なのか?
誰かがこの「機能」を理解するための手がかりを教えてもらえますか? ありがとう