#include #include using namespace std; using namespace boost::assign; template void cons(T1) { cout << "cons 1" << endl; } template void cons(T1, T2) { cout << "cons 2" << endl; } template void cons(T1, T2, T3) { cout << "cons 3" << endl; } template void cons(T1, T2, T3, T4) { cout << "cons 4" << endl; } int main() { cout << "calling cons(list_of(3)(5), 4, 5)" << endl; cons(list_of(3)(5), 4, 5); cout << "calling cons( (list_of(3)(5), 4, 5) )" << endl; cons( (list_of(3)(5), 4, 5) ); return 0; }