关于最新电子版《Thinking in C++(第二卷)》模板章节的一个例子的问题,模板高手请进。
在www.BruceEckel.com下载了最新版的《Thinking in C++》第二卷,“Templates in Depth”那一章中例子C05:PrintSeq.cpp,列举如下:
// A print function for standard C++ sequences
#include <iostream>
#include <list>
#include <memory>
#include <vector>
using namespace std;
template<class T, template<class U, class = allocator<U> >
class Seq>
void printSeq(Seq<T>& seq) {
for (typename Seq<T>::iterator b = seq.begin();
b != seq.end();)
cout << *b++ << endl;
}
int main() {
// Process a vector
vector<int> v;
v.push_back(1);
v.push_back(2);
printSeq(v);
// Process a list
list<int> lst;
lst.push_back(3);
lst.push_back(4);
printSeq(lst);
} ///:~
这段程序在Visual Studio.Net 2003 里编译不过。我查了一下国外的新闻组,好像是说template template parameters in functions is not allowed.但这本书没有提及啊,否则也不会列出这段程序。我想听听各位大侠的意见。