【发布时间】:2016-08-18 21:42:17
【问题描述】:
为什么会出现这个错误:
Error 2 error C2248: 'std::unique_ptr<_Ty>::unique_ptr' : cannot access private member declared in class 'std::unique_ptr<_Ty>' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xmemory0 606 1 UNIQUE_PTR
尝试使用__declspec(dllexport) 导出此类时?
class __declspec(dllexport) A
{
private:
std::stack<std::unique_ptr<int>> ints;
};
我用的是 vs2012
【问题讨论】:
-
真的不能说,我猜是因为试图访问
ints的人没有访问权限,因为是私有的。 -
这是我编译的所有代码,除了一个返回 0 的 main。我没有实例化那个类,我什么也不做
-
我会尝试使用新的编译器。 MSVS 2012 不符合 C++11。如果您必须留在 MSVS 世界,那么我会尝试 MSVS 2015。
-
好的,我家里装了vs2013,我试试看。
-
我会使用 GCC 5.x,但我似乎无法让它在 Windows 上运行 :(
标签: c++ c++11 stl stack unique-ptr