嵌套时(比如printVector)中的">>"的优化
在使用vector时,本意是向模板中传入一个vector类型的参数,但是编译器错误的将">>"识别为右移运算符,而不是模板参数表的结束。之前的解决方案是在">>"中间添加空格"> >"。
C++11优化了这一问题,使得不添加空格也可以正确的编译。
[code]#include #include using namespace std;templateclass Base {public: void printVector(T& t) { auto it = t.begin(); for (; it != t.end(); it++) { cout )解析成模板参数结束符,方便我们编写模板相关的代码。</p>上面的这段代码,在支持C++11的编译器中编译是没有任何问题的。
方法的默认模板参数
在c++11之前,类模板可以有默认的模板参数;但是方法模板不支持有默认的模板参数。
在C++11中添加了对函数模板默认参数的支持。
[code]#include #include using namespace std;template //c++11之前就 支持 类模板 默认的模板参数,还定义了非类型参数t的默认值为520class Test {public: void print() { cout |