2016-06-09 8 views
1

Linux Mint 17.3 Rosa에 boost (1.60.0)를 설치하고이 명령을 사용하여 gcc 컴파일러 (v 4.8.4 64 비트)를 사용하여 boost accumulator 예제 (http://www.boost.org/doc/libs/1_60_0/doc/html/accumulators/user_s_guide.html)를 컴파일하려고했습니다 :boost accumulator 예제가 컴파일되지 않습니다.

>g++ -o exaccu exaccumulator.cpp -I/usr/local/lib/boost_1_60_0/ 

컴파일 오류 메시지의 긴 목록으로 시작 실패했습니다

>exaccumulator.cpp: In function ‘int main()’: 
>exaccumulator.cpp:22:32: error: ‘accumulators’ has not been declared 
>std::cout << "Moment: " << accumulators::moment<2>(acc) << std::endl; 

accumulators.hpp을 찾고 후 나는 축전지 :: 순간 < 2> 순간 < 2 변경>. 이것은 트릭을했고 컴파일 (같은 플래그로)이 성공했습니다. 양자 택일로, "누산기"앞에 "boost :: accumulators :: moment < 2"를 붙이면 효과가있었습니다. 그래서 내 질문은 : 부스트 설치에 문제가 있습니까? 아니면 자습서의 예제에 오타가 있습니까?

+0

예를 수정하기 위해 PR을 제출했습니다. https://github.com/boostorg/accumulators/pull/4 – Praetorian

답변

0

실제로 이것은 오타입니다.

당신은 예를 컴파일하기 위해 전체 boost 네임 스페이스 (좋은 생각)를 사용할 수 있습니다 :

using namespace boost; 
accumulators::moment<2>(acc); 

또는, 당신은 이미처럼, 단지 accumulators:: specificier를 제거하고 오직 namespace boost::accumulators;을 사용합니다.

아니면 그냥 정규화 된 이름을 지정하십시오 : boost::accumulators::moment<2>(acc).