da me compila:
codice:/* $ g++ --version; g++ -Wall -ansi -pedantic -Wextra -Wconversion main.cpp; ./a.out i686-apple-darwin8-g++-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367) Copyright (C) 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Yow! Yow! Yow! Yow! Yow! Yow! Yow! Yow! Yow! Yow! */ // #include "stdafx.h" #include <vector> #include <iostream> #include <string> #include <iterator> using namespace std; // As long as things are simple, // this approach works fine: template<typename C> void print1(C& c) { typename C::iterator it; for(it = c.begin(); it != c.end(); it++) cout << *it << " "; cout << endl; } // Template-template argument must // be a class; cannot use typename: template<typename T, template<typename> class C> void print2(C<T>& c) { copy(c.begin(), c.end(),ostream_iterator<T>(cout, " ")); cout << endl; } int main() { vector<string> v(5, "Yow!"); print1(v); print2(v); }

Rispondi quotando