3

我一直在尝试使用 Visual Studio 2012 编译一些代码,包括一些 Boost 类,并且我一直收到有关多个声明的错误。

1>c:\boost\boost_1_53_0\boost\tr1\memory.hpp(43): error C2874: using-declaration causes a multiple declaration of 'boost::bad_weak_ptr'

这发生在 boost\tr1\memory.hpp 中包含的其他几个 Boost 类中。

我检查了其他包含目录和库目录是否到位,据我所知,但问题仍然存在。有人知道吗?谢谢。

4

1 回答 1

0

问题是 shared_ptr 是C++11中 std和std::tr1 的一部分。由于 VS2012(大部分)符合 C++11,因此 boost\tr1\memory.hpp 和内存头之间似乎存在命名空间冲突。

正如 Mihai Todor 所指出的,我认为它确实可能与 using 指令有关。在我的情况下,我可以删除 boost memory.hpp 包括。

于 2013-07-25T11:28:25.843 回答