C++ 由于将代码从VS2013预览导入VS2012,因此出现唯一的\u ptr编译器错误
我在VisualStudio2013预览版之前的代码中使用了std::unique_ptr,我没有遇到这些问题。对于我最近的项目案例,在VisualStudio2012中调试时编译器错误较少。所以现在我只得到了以下错误 这是一条有问题的路线:C++ 由于将代码从VS2013预览导入VS2012,因此出现唯一的\u ptr编译器错误,c++,visual-studio-2012,firebreath,visual-studio-2013,C++,Visual Studio 2012,Firebreath,Visual Studio 2013,我在VisualStudio2013预览版之前的代码中使用了std::unique_ptr,我没有遇到这些问题。对于我最近的项目案例,在VisualStudio2012中调试时编译器错误较少。所以现在我只得到了以下错误 这是一条有问题的路线: std::unique_ptr<MyClass> classHolder; std::唯一的类持有者; 下面是编译器所说的 “唯一”:不是“std”的成员 语法错误:缺少“;”在“之前,由于FireBreath必须在没有C++11标准的旧
std::unique_ptr<MyClass> classHolder;
std::唯一的类持有者;
下面是编译器所说的
- “唯一”:不是“std”的成员
- 语法错误:缺少“;”在“之前,由于FireBreath必须在没有C++11标准的旧浏览器上运行,我不知道如何解决您直接描述的问题,但是您可以使用boost作用域的ptr类型而不是unique ptr。我在VS 2013更新4中遇到了同样的问题,我只是写了下来
它被编译了using namespace std;
在尝试using语句之前,我已经包括了
,并使用了
(就像您所做的那样),这会产生与您在那里遇到的错误一样的错误。std::unique\u ptr
然而,当我尝试使用名称空间std代码>事情解决了
我想这可能会对某些人有所帮助是否包含?是的,头文件中包含内存提供了一个完整的示例来演示此问题。obj用作helper类。为什么要在析构函数中调用
?这是内存泄漏。智能指针的全部意义在于,您不必像那样手动管理它们。他们负责自己的清理工作。这不是一个完整的例子。obj.release()
using namespace std;