C++模板的细节改进
emsp;emsp;C++11改进了编译器的解析规则,尽可能的将多个右尖括号(>)解析称模板参数结束符,方便我们编写模板相关的代码。
1.模板的右尖括号
emsp;emsp;在C++98/03的泛型编程中,模板实例化有一个很繁琐的地方,那就是连续两个右尖括号(>>)会被变异器解释称右移操作符,而不是模板参数表的结束。
emsp;emsp;代码清单1-1
代码清单1-1 C++98/03中不支持连续两个右尖括号的示例
template <typename T>
struct Foo
{
typedef T type;
};
template <typename T>
class A
{
//...
};
int main(void)
{
Foo<A<int>>::type xx;//编译出错
return 0;
}