博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Boost 1.61发布,带来了新的CPU/CPU计算、插件管理和其他程序库
阅读量:6905 次
发布时间:2019-06-27

本文共 1764 字,大约阅读时间需要 5 分钟。

在1.60版本发布的5个月后,Boost发布了1.61版本,增加了一些新程序库,同时更新了许多程序库。

\\

Boost 1.61包括4个新程序库:

\\
  • ,使用为多核CPU和GPU运算平台提供C++接口。OpenCL是一个开放标准,它允许创建运行在异构运算设备(如CPU和GPU)上的应用程序。该程序库提供管理OpenCL对象的类,例如设备(device)、内核(kernel)和命令队列(command_queues),同时也提供了允许开发者处理计算设备、与计算设备传输数据、迭代和转换计算设备的函数。这使得我们可以将数据传输到默认计算设备上,对数据进行转换,最后复制回宿主机: \
std::vector host_vector(10000);\// 定义宿主机内容向量\// 获取默认设备,并且设置上下文\compute::device device = compute::system::default_device();\compute::context context(device);\compute::command_queue queue(context, device);\// 在设备上创建向量\compute::vector device_vector(host_vector.size(), context);\// 将数据从宿主机传输到设备上\compute::copy(\    host_vector.begin(), host_vector.end(), device_vector.begin(), queue\);\// 就地计算每个元素的平方根\compute::transform(\    device_vector.begin(),\    device_vector.end(),\    device_vector.begin(),\    compute::sqrt(),\    queue\);\// 将数据复制回宿主机\compute::copy(\    device_vector.begin(), device_vector.end(), host_vector.begin(), queue\);
\\
  • ,一个旨在开发跨平台、可移植插件的程序库。DLL允许开发者加载其他程序库、导入本地函数和变量、查询程序库的段和符号表等。DLL插件可以通过extern “C”和BOOST_SYMBOL_EXPORT定义。客户端应用程序可以通过执行DLL插件的import函数加载动态链接库: \
// 持有指向插件变量指针的变量\boost::shared_ptr plugin;\plugin = dll::import(\    full_path_to_library,\    name_of_symbol_to_import,\    dll::load_mode::append_decorations\);
\\

DLL也支持动态链接库的引用计数,以更好的控制已加载插件的生命周期、在插件卸载时执行回调函数和其他一些功能。

\\
  • ,一个元编程库,它能够提供操作异构序列的高级算法。对比现有元编程库,例如和,Hana统一了类型和值的操作。Hana提供了一系列容器类型,例如元组(tuple)、含无效值容器(optional)、映射(map)等,还有操作这些容器的算法集合,例如折叠(fold)、压缩(zip)、扁平化(flatten)等。 \\
  • ,一个用于生成解析器的程序库,它能够在编译时解析文本或代码,并且可以返回一个类型、一个常量和一个运行时调用的C++函数等。Metaparse特别倾向用于创建一种嵌入式领域特定语言。Metaparse允许使用的语法定义。它和另一个著名的元编程库的主要区别是后者产生运行时解析器,而Metaparse产生编译时解析器。 \

前文提到过,Boost 1.61也更新了许多现有程序库,包括(多倍精度数值库)、(含无效值容器库)、(几何库)、(容器库)等等。

\\

查看英文原文:

\\

感谢对本文的审校。

\\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博(,),微信(微信号:)关注我们。

转载地址:http://gfmdl.baihongyu.com/

你可能感兴趣的文章
获取免费Windows Store开发者账户方法
查看>>
程序员杂记系列
查看>>
参加“北向峰会”后对SOC之感言
查看>>
ASP.NET vNext MVC 6 电商网站开发实战
查看>>
马化腾IT领袖峰会力推,微信小程序即将迎来爆发拐点
查看>>
javascript js 判断页面是否加载完成
查看>>
【机器学习算法-python实现】决策树-Decision tree(1) 信息熵划分数据集
查看>>
最新的goldengate monitor 12.1.3已经发布
查看>>
ASP.NET防止用户多次登录的方法
查看>>
2D多边形碰撞器优化器
查看>>
webBrowser 模拟登录
查看>>
idea 配置多个tomcat
查看>>
weblogic 整合cxf 报错:cannot create a secure XmlInputFactory
查看>>
Nancy 返回值详解
查看>>
架构思维案例:速学正则
查看>>
记录一则FGA审计“A用户对B用户某张表的更新操作”需求
查看>>
IntelliJ IDEA优秀插件(编程通用)
查看>>
API返回错误信息的最佳实践
查看>>
AngularJS实现三级Table列表
查看>>
scala sortBy and sortWith
查看>>