2016-06-09 74 views
1

我在Linux Mint 17.3 Rosa上安裝了boost(1.60.0),並嘗試使用以下命令編譯boost累加器示例(http://www.boost.org/doc/libs/1_60_0/doc/html/accumulators/user_s_guide.html)和gcc編譯器(v 4.8.4 64位):boost accumulators示例不能編譯

>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>」前綴「累加器」也起作用。所以我的問題是:在安裝boost時是否有問題,或者本教程示例中是否存在拼寫錯誤?

+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)