宏问题:(看过Mordern C++ Design)的朋友求助!
下面是一个C++库里面代码!
。。。。。
#define TYPELIST_T1(T1) typeList<T1,NullType>
#define TYPELIST_T2(T1,T2) typeList<T1,TYPELIST_T1(T2) >
#define TYPELIST_T3(T1,T2,T3) typeList<T1,TYPELIST_T2(T2,T3) >
#define TYPELIST_T4(T1,T2,T3,T4) typeList<T1,TYPELIST_T3(T2,T3,T4) >
。。。。。。。。。。。。。。。。
我定义了一个宏如下:
#define DECLEAR_1_ELEM(T1)
typeAt<TYPELIST_T1(T1),1>::Result ELEM1;
引发如下错误:(VS2005)
d:\药品处理\药品处理\typelist.h(34) : error C2065: “T1”: 未声明的标识符
d:\药品处理\药品处理\typelist.h(34) : error C3203: “typeList”: 未专用化的类 模板 不能用作 模板 变量,该变量属于 模板 参数“TList”,应为 real 类型
d:\药品处理\药品处理\typelist.h(34) : error C2027: 使用了未定义类型“typeAt<TList,index>”
with
[
TList=int,
index=0
]
d:\药品处理\药品处理\typelist.h(34) : error C2146: 语法错误 : 缺少“;”(在标识符“ELEM1”的前面)
d:\药品处理\药品处理\typelist.h(34) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
d:\药品处理\药品处理\typelist.h(34) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int