我正在构建一个仅包含标题的库(有充分的理由;不要讨厌),其中包含一个类和类成员函数的实现。在这样做时,我遇到了一个非常奇怪的错误<unordered_set>
。对 GCC 的 Bugzilla 的搜索似乎没有解决这个问题。
我的代码中断(严重)在我的命名空间中有包含。
namespace probability {
#include <string>
#include <unordered_set> // only this include breaks
#include <unordered_map>
class ProbabilityTools
{
...
偶然地,我将 #includes 移到了类命名空间之外,它解决了<unordered_set>
. 当放置在命名空间内时,没有其他包含导致此问题,只有<unordered_set>
.
#include <string>
#include <unordered_set> // works when outside the namespace
#include <unordered_map>
namespace probability {
class ProbabilityTools
{
...
我正在使用带有 -std=c++11 的 GCC g++ 4.8 来构建此代码,该代码适用于第二种配置,并且<unordered_map>
在两种配置中都可以使用。
这可能是一个 libstdc++ 错误吗?海湾合作委员会错误?