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
我也试过了
...
template <class myType>
vector<Foo<myType>::Bar*> Foo<myType>::bars; // error C2059: syntax error : '>'
它是有效的,如果在设计class Bar之外声明,class Foo但从设计的角度来看,这是一个丑陋的解决方案.有什么建议?
仅供参考,一切都在.h文件中声明.
Don*_*alo 10
试试这个:
template <class myType>
vector<typename Foo<myType>::Bar*> Foo<myType>::bars;
| 归档时间: | 
 | 
| 查看次数: | 687 次 | 
| 最近记录: |