将变量的引用传递给模板

时间:2015-11-15 19:37:48

标签: c++ templates

我正在尝试将参考变量传递给具有以下代码的模板,但是我遇到编译器错误。任何人都可以找出原因。感谢。

#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:发现意外的文件结尾

1 个答案:

答案 0 :(得分:3)

Test<A.x> test;应为Test<A::x> test;