我们正在将 C++ 项目从 VS2010 迁移到 VS2019。
获取
ERROR : '_Ty *std::allocator<_Ty>::address(_Ty &) noexcept const': member function already defined or declared
in the 'xmemory' file located in the installation directory of VS2019 Professional version.
Path: ..\VC\Tools\MSVC\14.29.30133\include.
我们无法找到可能导致此问题的项目文件。
我们在 xmemory 文件中看到了如下 2 个定义。我们尝试评论其中之一,但没有成功。
_CXX17_DEPRECATE_OLD_ALLOCATOR_MEMBERS _NODISCARD _Ty* 地址(_Ty& _Val) const noexcept { 返回 _STD 地址(_Val); }
_CXX17_DEPRECATE_OLD_ALLOCATOR_MEMBERS _NODISCARD const _Ty* address(const _Ty& _Val) const noexcept {
return _STD addressof(_Val);
}
上述错误来自第二个定义。
确实没有问题,但调试此问题的一种方法是查看预处理器输出并尝试找出导致问题的原因 - 请参阅https://learn.microsoft.com/en-us/cpp/build /reference/p-preprocess-to-a-file?view=msvc-170