Druning
栗悟饭和龟仙人
2017-10-27 09:22

c++ 模板特例化问题 zszs

5
  • template
  • c++
  • printf

c++ function类的定义是类似这样的

 template<typename T> class function;

 template<typename R, typename... T>
 class function<R(T)>
 {
 };

这里大概是模板特例化了,不过让人疑惑的是R(T)这部分,这是什么,我自己写了一个试了下:

 template<typename R> class A;

template<typename R, int T> 
class A<R[T]>
{
public:
    A()
    {
        for(int i=0;i<T;i++){
            a[i] = i;
        }
    }
    R a[T];
};


int main()
{
    A<int[10]> a;
    for(int i=0;i<10;i++){
        printf("%d\n", a.a[i]);
    }
    return 0;
}

上面代码是可以正常运行的,有谁可以解释下这什么原理。

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

4条回答

为你推荐