模板编程中的typename作用

来源:互联网 发布:photo shop cs3 mac版 编辑:程序博客网 时间:2024/06/05 18:50

1、在模板形参列表中,表示类型说明符。

2、在模板函数体中显示声明正在使用的名字是一个类型。

template<typename T>void fcn(T t){    T::size_type *p;}

在该模板函数中,size_type既可以是T的数据成员,又可以是T的类型成员,产生二义性,因此要显示用typename指示size_typeT的类型成员。

改正:

template<typename T>void fcn(T t){    typename T::size_type *p;}