我最近使用这个语法的指针:疯狂的unique_ptr语法
std::vector<Shader *>* _shaderArray;
的问题是,我开始内存泄漏错误。所以现在我决定使用unique_pointers,所以我不必再为此担心。但从我的理解上面的语法在c + + 11语法是:
std::unique_ptr<std::vector<std::unique_ptr<Shader>>> _shaderArray;
如果这是正确的,我该如何初始化它?这段代码给我的错误:
_shaderArray = new std::vector<Shader *>();
给我一个“新”的错误。它说Error:期望一个类型说明符,因为我有两个独特的指针,也许我应该初始化两个 – lhahn 2014-10-09 01:53:20
上面的声明在我的一侧编译没有错误(包括g ++和clang)。确保你使用'-std = C++ 11'标志来启用'C++ 11' – vsoftco 2014-10-09 01:55:15
我想把它包含在一个私有成员中,但我没有在这里编译(visual studio 2013 express),我会尝试那 – lhahn 2014-10-09 01:56:19