将VS 2012迁移到VS 2015后,C ++项目中的Xmemory错误

时间:2016-03-03 06:43:14

标签: c++ visual-studio visual-studio-2012 compiler-errors visual-studio-2015

我的项目在Visual Studio 2012中正常工作和编译。但是我试图在VS 2015的计算机上打开它,我得到156个错误。所有相同和全部在同一个文件和相同的3行: 严重性代码描述项目文件行抑制状态

Error   C2338   The C++ Standard forbids containers of const elements because allocator<const T> is ill-formed. leaf    c:\program files (x86)\microsoft visual studio 14.0\vc\include\xmemory0 585 

Error   C2535   'const long *std::allocator<_Ty>::address(const long &) noexcept const': member function already defined or declared    leaf    c:\program files (x86)\microsoft visual studio 14.0\vc\include\xmemory0 613 

Error   C2535   'const long *std::_Wrap_alloc<std::allocator<_Ty>>::address(const long &) const': member function already defined or declared   leaf    c:\program files (x86)\microsoft visual studio 14.0\vc\include\xmemory0 846 

我只获得了相同的3个错误,共52次,共计156次。我的代码没有出现任何错误,都是这个xmemory0文件。

1 个答案:

答案 0 :(得分:4)

我假设您尝试使用带有const s的STL容器?这是C ++标准禁止的,但早期版本的Visual C ++允许这样做。新的编译器在这方面更符合标准,并且会产生与您的错误相同的错误。

Visual Studio Connect

的更多信息

可以在文件中进行简单的查找&#34;&lt; const&#34;检查整个源代码中是否有类似内容。