Я хотел бы обработать некоторые аргументы шаблона, используя boost :: mpl :: fold. На данный момент я все еще придерживаюсь примера, предоставленного Boost, поскольку даже это не работает для меня. Я получаю следующую ошибку:
..\src\main.cpp:18:32: error: template argument 2 is invalid
..\src\main.cpp:18:37: error: wrong number of template arguments (4, should be 3)
Следующий код взят из http://www.boost.org/doc/libs/1_48_0/libs/mpl/doc/refmanual/fold.html
#include <string>
#include <iostream>
#include <boost/mpl/fold.hpp>
#include <boost/mpl/plus.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/type_traits.hpp>
using namespace std;
using namespace boost;
using namespace boost::mpl;
using namespace boost::type_traits;
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 main(){
}
Я использую mingw 4.7.0, используя флаг "-std = c ++ 11". Я нашел несколько других примеров в сети, но пока не смог собрать ничего полезного. Есть предложения?