相关疑难解决方法(0)

专用模板类的静态成员初始化

class A
{
};

template <typename A, int S>
class B
{
public:
        static int a[S];

        B()
        {
                a[0] = 0;
        }
};

template<> int B<A, 1>::a[1];

int main()
{
        B<A, 1> t;
        t;
}
Run Code Online (Sandbox Code Playgroud)

它在GCC 4.1下编译,但没有链接:

static.cpp:(.text._ZN1BI1ALi1EEC1Ev[B<A, 1>::B()]+0x5): undefined reference to `B<A, 1>::a'
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我宁愿保持初始化专用,因为数组包含特定于该类型的一些数据.

c++ static templates initialization specialization

17
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

initialization ×1

specialization ×1

static ×1

templates ×1