我正在尝试将参考变量传递给具有以下代码的模板,但是我遇到编译器错误。任何人都可以找出原因。感谢。
#include<iostream>
using namespace std;
template<int &T>
class Test
{
public:
static void do_it()
{
T=1;
}
};
struct A{
static int x;
};
int A::x=0;
int main()
{
Test<A::x> test;
test.do_it();
cout<<A::x;
return 0;
}
错误:
错误C2143:语法错误:在'之前缺少','。' 错误C2143:语法错误:缺少';'在'}'之前 错误C2143:语法错误:缺少';'在'}'之前 致命错误C1004:发现意外的文件结尾
答案 0 :(得分:3)
Test<A.x> test;
应为Test<A::x> test;