0

ブーストを使用する比較的大きなプロジェクト(VS2010)があります。単純なコード例に特定できない何らかの理由で、ライブラリ内からエラーが発生しています。

boost_1_53_0\boost/unordered/unordered_set.hpp(56): error C3083: 'detail': the symbol to the left of a '::' must be a type
boost_1_53_0\boost/unordered/unordered_set.hpp(505) : see reference to class template instantiation 'anydsl::boost::unordered::unordered_set<T,H,P,A>' being compiled

問題はおそらく別の場所から発生していますが、コンパイラはその原因についてまったくヒントを与えません。

それがどこから始まったのでしょうか?

他の誰かが同様の問題を経験しましたか?

バグに遭遇した後、boost 1.47.0 を 1.53.0 にアップグレードしましたが、問題は解決しません。

4

1 に答える 1

2

で示されてkassakいるように、エラーメッセージはunordered_set.hpp、自分の別の名前空間内にいるときにインクルードしていることを示しています。悪いことが起こるので、決してそれをしないでください。

あなたの特定のケースでは、コンパイラは解決しようとします

typedef boost::unordered::detail::set<A, T, H, P> types;

名前空間内anydslanydsl::boost::unordered::detail存在しないため、型を指定しない(やや誤解を招く)エラーをスローしますdetail

于 2013-03-21T16:56:37.753 に答える