首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

[请问]这个模板参数是什么含义

2012-06-07 
[请教]这个模板参数是什么含义?C++ Template成书的时候很早,那时候还没有可变长参数模板。但是书里面有

[请教]这个模板参数是什么含义?
<<C++ Template>>成书的时候很早,那时候还没有可变长参数模板。但是书里面有这样一段代码:

C/C++ code
template<typename T>class CompoundT {           // primary template  public:    enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 0,           IsFuncT = 0, IsPtrMemT = 0 };    typedef T BaseT;    typedef T BottomT;    typedef CompoundT<void> ClassT;};template<typename R, typename P1>class CompoundT<R(P1, ...)> {  public:    enum { IsPtrT = 0, IsRefT = 0, IsArrayT = 0,           IsFuncT = 1, IsPtrMemT = 0 };    typedef R BaseT(P1);    typedef R BottomT(P1);    typedef CompoundT<void> ClassT;};

这里的<R(P1, ...)>怎么像是可变长参数呢? 这个CompountT模板类应该怎么用?

[解决办法]
这里的模版参数是一个函数, 这个函数返回值类型是 R!, 第一个参数类型是 P1, 之后是不定参数. 
这个不定参数是函数的参数, 不是模版的参数.

热点排行