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;
}
posted @ 2024-08-22 23:24  ydqun  阅读(1)  评论(0编辑  收藏  举报