C++ 模板的

C++ 模板的<typename T>和<class T>
定义类模板时候 我感觉这俩没啥区别啊。。。。。
------解决方案--------------------
就是对于一个依赖性的名称,必须使用typename进行编译器提示:

比如:
template<class T>
class A {
public:
static const int value = 0;
void f()
{
  T::value_type* value;
  //...
}
};

这个地方

T::value_type* value;

可能会被编译器解释为T中的value_type和static member data value相乘。而开发者的目的是要定义一个局部指针value。这里value_type是一个依赖性的名字,它依赖于T的具体类型。因此,这里必须写成

typename T::value_type* value;

来告诉编译器这是一个依赖性类型,而不是一个值。