将VS 2012迁移到VS 2015后,C ++项目中的Xmemory错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将VS 2012迁移到VS 2015后,C ++项目中的Xmemory错误相关的知识,希望对你有一定的参考价值。
我的项目在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.0vcincludexmemory0 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.0vcincludexmemory0 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.0vcincludexmemory0 846
我只获得了相同的3个错误,共52次,总共156次。我的代码没有出现任何错误,都是这个xmemory0文件。
答案
我假设您正在尝试使用带有const
s的STL容器?这是C ++标准禁止的,但早期版本的Visual C ++允许这样做。新的编译器在这方面更符合标准,并且会像您的一样产生错误。
有关Visual Studio Connect的更多信息
可以在文件中为“<const”做一个简单的查找,以检查整个源代码中是否有类似的内容。
以上是关于将VS 2012迁移到VS 2015后,C ++项目中的Xmemory错误的主要内容,如果未能解决你的问题,请参考以下文章
禁用菜单项时,如何将 VS Profiler 2012 附加到 ASP.NET 解决方案?