2013-03-21 3 views
0

부스트를 사용하는 비교적 큰 프로젝트 (VS2010)가 있습니다. 나는 간단한 코드 예제 아래 핀 수없는 이유로 나는 도서관 내에서 오류 타격 오전 :unordered_set.hpp의 C3083 오류?

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 

문제는 아마 다른 곳에서 유래하지만, 컴파일러는 그 기원에 대해 전혀 힌트를주지 않는다.

어디서 발생했는지 알고 싶습니까?

누구나 비슷한 문제가 발생 했습니까?

버그가 발생해도 1.47.0을 1.53.0으로 업그레이드했지만 문제가 지속됩니다.

+0

다른 파일보다 먼저 unordered_set을 포함하여 테스트 해 주실 수 있습니까? –

+0

제안 해 주셔서 감사합니다. 그것을 시도했지만 문제는 지속됩니다. – CygnusX1

+0

스트라이크. 실제로 그 .cpp 파일에서 문제를 해결하지만, 다른 .cpp 파일에서 스스로 재현됩니다. 그것은 나에게 무슨 일이 일어나고 있는지에 대한 좋은 힌트를 제공합니다. – CygnusX1

답변

2

kassak을 가리키면 자신의 다른 네임 스페이스 내에있는 동안 unordered_set.hpp이 포함되어 있다는 오류 메시지가 표시됩니다. 나쁜 일이 일어날 때 절대 그렇게하지 마십시오. 특정 경우

는, 컴파일러는 네임 스페이스 anydsl

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

를 해결하려고합니다. anydsl::boost::unordered::detail이 존재하지 않으므로 detail은 형식을 지정하지 않은 (다소 오도 된) 오류가 발생합니다.