boost accumulators例子没有编译

时间:2016-06-09 16:47:00

标签: c++ boost boost-accumulators

我在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):

>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&lt; 2&gt;到时刻&lt; 2&gt;。这样做了,并且编译(使用相同的标志)成功了。或者,前缀&#34;累加器&#34;与&#34; boost :: accumulators ::时刻&lt; 2&gt;&#34;也工作过。所以我的问题是:我的boost安装有什么问题,或者教程中的示例中是否有拼写错误?

1 个答案:

答案 0 :(得分:0)

这似乎确实是一个错字。

您可以使用整个boost命名空间(坏主意)来编译示例:

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

或者,就像您已经做过的那样,只需删除accumulators::指定者,然后只使用namespace boost::accumulators;

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