typdef 类型 类型名
此语句说明只定义了一个数据类型的新名字而不是定义一种新的数据类型
typdef typename 类型 类型名
加上typename说明定义了一种新的数据类型。
在程序中有如下代码
template<class T>
class CApply
{
public:
//typedef NumTraits<T>::resulttype result;
//typedef NumTraits<T>::inputpara input;
//typedef typename NumTraits<T>::resulttype result;
//typedef typename NumTraits<T>::inputpara input;
result GetSum(T& obj,input in)
{
return obj.GetSum(in);
}
};
使用前两条注释语句的话VC6.0编译通过,高版本的VS编译器不通过,原因是缺少类型说明符,这是VS更加严格严格和规范的缘故吧。使用后两行注释即可指明result和input为新的数据类型。
此语句说明只定义了一个数据类型的新名字而不是定义一种新的数据类型
typdef typename 类型 类型名
加上typename说明定义了一种新的数据类型。
在程序中有如下代码
template<class T>
class CApply
{
public:
//typedef NumTraits<T>::resulttype result;
//typedef NumTraits<T>::inputpara input;
//typedef typename NumTraits<T>::resulttype result;
//typedef typename NumTraits<T>::inputpara input;
result GetSum(T& obj,input in)
{
return obj.GetSum(in);
}
};
使用前两条注释语句的话VC6.0编译通过,高版本的VS编译器不通过,原因是缺少类型说明符,这是VS更加严格严格和规范的缘故吧。使用后两行注释即可指明result和input为新的数据类型。