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;
}
上面代码是可以正常运行的,有谁可以解释下这什么原理。