簡體   English   中英

boost accumulators示例不編譯

[英]boost accumulators example doesn't compile

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

>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后,我將accumulators :: moment <2>更改為時刻<2>。 這樣做了,並且編譯(使用相同的標志)成功了。 或者,在“boost :: accumulators :: moment <2>”前加上“accumulators”前綴也可以。 所以我的問題是:我的boost安裝有什么問題,或者教程中的示例中是否有拼寫錯誤?

這似乎確實是一個錯字。

您可以使用整個boost命名空間(壞主意)來編譯示例:

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

或者,就像你已經做過的那樣,只需刪除accumulators:: specificier,只使用namespace boost::accumulators;

或者只是指定它的完全限定名稱: boost::accumulators::moment<2>(acc)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM