首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >boost累加器示例不编译

boost累加器示例不编译
EN

Stack Overflow用户
提问于 2016-06-09 16:47:00
回答 1查看 311关注 0票数 1

我在LinuxMint17.3 Rosa上安装了boost (1.60.0),并尝试使用以下命令用gcc编译器(v4.8.4 64位)编译boost累加器示例(guide.html):

代码语言:javascript
复制
>g++ -o exaccu exaccumulator.cpp -I/usr/local/lib/boost_1_60_0/

编译失败,从以下开始的错误消息列表很长:

代码语言:javascript
复制
>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>改为moment<2>。这就成功了,编译成功了(使用相同的标志)。或者,用"boost::accumulators::moment<2>“作为”累加器“的前缀也有效。因此,我的问题是:我的boost安装有什么问题吗?还是在教程中的示例中有错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-09 16:54:39

这似乎确实是个错误。

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

代码语言:javascript
复制
using namespace boost;
accumulators::moment<2>(acc);

或者,就像您已经做的那样,只需删除accumulators::规范程序,只使用namespace boost::accumulators;

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37731872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档