模板特化的一个编译异常
模板特化的一个编译错误.我试图实现一个自己的静态断言static_assert,用了如下的设计:(1) 声明一个空的模
模板特化的一个编译错误.
我试图实现一个自己的静态断言static_assert,用了如下的设计:
(1) 声明一个空的模板类,模板参数为bool
(2) 特化true类型的。
(3) 声明一个函数定义,取sizeof( true的类型 )
C/C++ code#include"stdafx.h"template<bool>struct my_static_asssert; // empty struct.template<true>struct my_static_assert{ int i;}#define MY_SATIC_ASSERT( b ) sizeof(my_stati_assert<b>)int main(void){ MY_STATIC_ASSERT(sizeof(size_t)==4); return 0;}
编译结果是一堆错误:
1> testvc10.cpp
1>d:\mytest\testvc10\testvc10\testvc10.cpp(5): error C2059: 语法错误:“常量”
1>d:\mytest\testvc10\testvc10\testvc10.cpp(11): error C2143: 语法错误 : 缺少“;”(在“int”的前面)
1>d:\mytest\testvc10\testvc10\testvc10.cpp(11): error C2992: “my_static_assert”: 模板 参数列表无效或缺少该参数列表
1> d:\mytest\testvc10\testvc10\testvc10.cpp(6) : 参见“my_static_assert”的声明
1>d:\mytest\testvc10\testvc10\testvc10.cpp(12): error C3861: “MY_STATIC_ASSERT”: 找不到标识符
1>
1>生成失败。
我的代码错在哪里?
[解决办法]template<true>
struct my_static_assert{
int i;
}
忘了加分号
[解决办法]C/C++ codemy_static_asssertmy_static_assert
[解决办法]
好多拼写错误。。。