非类名C ++ 11类型名称是一个简单的模板ID?

时间:2013-04-25 04:02:16

标签: c++ templates c++11

在C ++ 11标准中,它使用以下语法描述type-nameclass-name

type-name:
    class-name
    enum-name
    typedef-name
    simple-template-id        <--- HERE

class-name:
    identifier
    simple-template-id

我的问题是关于simple-template-id type-name的直接后裔。

是否有可能simple-template-idtype-name但不是class-name

例如,如果foo<bar>命名一个类型,它是否可以是非类类型?

(如果答案是否定的,是否还有其他原因我错过了为什么simple-template-id会在type-name下重复?)

1 个答案:

答案 0 :(得分:5)

有可能,例如:

template <typename T> using Ptr = T *;

Ptr<int> p = 0;