2013-12-21 3 views
3

C++ 컴파일러 0X boost.spirit 예 mini_xml2.cpp (그리고 C++ 컴파일러 0X에서 오류없이)Boost.Spirit mini_xml2.cpp 예는 C++ (11)에 의해 컴파일 될 수있는 부스트 1.55

컴파일되지
$> c++ -std=c++0x mini_xml2.cpp (errors) 
$> c++ mini_xml2.cpp (no errors) 

오류 로그는 here입니다. 그 문제는 nonterminal 속성 (라인 159-163)과 관련이 있다고 의심하지만 잘못 될 수 있습니다.

  • C++ 버전 (우분투/리나의 4.8.1-10ubuntu9) 4.8.1
  • 부스트 버전은 1.55

나는 부스트 추적기에서 issue 만들었지 만 아무 대답이 없다했습니다.

누구나 같은 오류가 있습니까?

해결 : 해결 방법은 here입니다. 바와 같이 피닉스 V2가에 의존로

// Add this macro 
#define BOOST_SPIRIT_USE_PHOENIX_V3 
+0

게으름하지 말고 g ++ 버전이 아니라 C++ 버전입니다. g ++은 ** a ** C++ 컴파일러이며, 그 중 많은 수가 있습니다. –

답변

3

, 현대 컴파일러에 실제로, 피닉스 V3를 사용하는 것이 필요합니다 이전 부스트 라이브러리의 최신 버전 그냥 항상 더 이상 포함되지 않습니다 프로토콜, 결과-의 .

또한 일부 컴파일러 (AFAIK 이상 clang)에서는 BOOST_RESULT_OF_USE_DECLTYPE 접근 방식이 기본적으로 활성화되어 있으므로 지원되는 라이브러리에서 (더 값 비싼) TR1 결과 프로토콜을 생략 할 수 있습니다. 반복 걸림돌로 우리 signaled this on the user list가 공식 결정이 여기 후

좋은 소식입니다 :

Farewell Phoenix-2 2013년 12월 14일; 오전 3시 38분 (조엘 드 구즈)
(또한 blog post)

부스트 C++ ... 십 년간보다는 더 후, 나는 마침내 부스트 성령의 코드베이스에서 피닉스 2 은퇴했다. 내가 슬퍼. 그것은 좋은 친구에게 작별 인사입니다. 이후 Phoenix-3에 . :) 단 7 일 전입니다이 문제가 해결 된 것입니다 (가까운) 미래에 그래서

.

+0

"(가까운) 미래에는이 문제가 해결 될 것입니다." 그리고이 태그의 3/4의 질문에 :). – llonesmiz

+0

좋아, 3/4는 스트레칭 일지 모르지만 내 메일 링리스트 게시물을 인용하면 다음과 같습니다. _ "PhoenixV3가 Spirit에 대한 사람들의 문제를 해결 한 횟수를 추적 할 수 없습니다. (또한, 당신은 빠르다!) – sehe