jok*_*aut 7 c++ static templates nested class
我试图找出初始化模板值为私有内部类的静态容器变量的正确方法.这是一个玩具的例子
#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
Run Code Online (Sandbox Code Playgroud)
我也试过了
...
template <class myType>
vector<Foo<myType>::Bar*> Foo<myType>::bars; // error C2059: syntax error : '>'
Run Code Online (Sandbox Code Playgroud)
它是有效的,如果在设计class Bar之外声明,class Foo但从设计的角度来看,这是一个丑陋的解决方案.有什么建议?
仅供参考,一切都在.h文件中声明.
Don*_*alo 10
试试这个:
template <class myType>
vector<typename Foo<myType>::Bar*> Foo<myType>::bars;
Run Code Online (Sandbox Code Playgroud)