【发布时间】:2011-04-21 11:17:34
【问题描述】:
我正在尝试找出初始化其模板值为私有内部类的静态容器变量的正确方法。这是一个玩具示例
#include <vector>
using namespace std;
template <class myType>
class Foo {
private:
class Bar {
int x;
};
static vector<Bar*> bars;
};
template <class myType>
vector<Bar*> Foo<myType>::bars; // error C2065: 'Bar' : undeclared identifier
我也试过
...
template <class myType>
vector<Foo<myType>::Bar*> Foo<myType>::bars; // error C2059: syntax error : '>'
如果class Bar 在class Foo 之外声明,它会起作用,但从设计的角度来看,这是一个丑陋的解决方案。有什么建议吗?
仅供参考,所有内容都在 .h 文件中声明。
【问题讨论】:
标签: c++ templates class static nested