int main() { typedef mpl::list<char,short,int,long,float,double> types; mpl::for_each< types,mpl::make_identity<mpl::_1> >(type_printer(std::cout)); typedef mpl::range_c<int,0,10> numbers; std::vector<int> v; #if defined(__SGI_STL_PORT) void (std::vector<int>::* push_back)(int const&) = &std::vector<int>::push_back; mpl::for_each<numbers>( boost::bind(push_back, &v, _1) ); #else mpl::for_each<numbers>( boost::bind(&std::vector<int>::push_back, &v, _1) ); #endif mpl::for_each< numbers >(value_printer(std::cout)); for (unsigned i = 0; i < v.size(); ++i) assert(v[i] == (int)i); return 0; }
int main() { typedef mpl::list<char,short,int,long,float,double> types; mpl::for_each< types,mpl::make_identity<mpl::_1> >(type_printer(std::cout)); typedef mpl::range_c<int,0,10> numbers; std::vector<int> v; mpl::for_each<numbers>( boost::bind(&push_back, &v, _1) ); mpl::for_each< numbers >(value_printer(std::cout)); for (unsigned i = 0; i < v.size(); ++i) assert(v[i] == (int)i); return 0; }