草庐IT

ZN5boost

全部标签

c++ - 如何调用boost_compute 'BOOST_COMPUTE_FUNCTION'定义的函数?

我目前正在探索boost_compute。不幸的是,文档页面和示例比我需要了解的要少。给定以下缩小代码:BOOST_COMPUTE_FUNCTION(bool,add,(int*values,int*results,intconstant),{//Whatstheindexingvariable?//Inopenclitwouldbeget_global_id(0)intindex=//?results[index]=values[index]+values[index+1]+values[index+2]+constant;});voidcompute(float*results,c

c++ - Boost::Future 延迟延续展开死锁

我正在使用Boost的promise和future并在使用延续时遇到了边缘情况。我的代码使用一个返回future的延续,并在获取其值之前解包then()的结果。#defineBOOST_THREAD_VERSION5#include#includeintmain(intargc,char*argv[]){boost::promisepromise;boost::futurefuture=promise.get_future();promise.set_value(42);intresult=future.then(boost::launch::async,[](boost::futur

c++ - Boost Container vector 可以通过非原始指针管理内存吗?

我有一个类似指针的结构来代替指针。与指针的区别在于它有额外的信息,(也是特殊的)分配器可以使用这些信息来释放内存。这种类似于指针的结构适用于所有基本用途。我可以分配和取消分配内存、取消引用、递增、->等现在我想使用这个指针由类似STL的容器管理。早些时候,我意识到STLvector基本上无法处理非原始指针。T*编码太硬,标准基本上排除了任何不是指针的东西。灵感来自Boost.Interprocess'offset_ptr我决定使用Boost.Containervector,这是非常可定制的,原则上可以管理任何东西,分配器传递给boost::container::vector可以处理任何

c++ - 如何将 boost::asio::tcp::io_stream 附加到我的 io_service?

我习惯使用boost::asio::ip::tcp::socket我在哪里construct他们用io_service.这很有用,因为我有一个用于所有套接字的io_service,并且这些套接字共享一个线程池。现在,我正在尝试使用boost::asio::ip::tcp::io_stream,我希望它在同一个线程池中执行所有异步工作。但是,似乎不可能construct带有外部io_service的tcp::io_stream。底层套接字确实使用了内部初始化的io_service。有没有办法让我继续使用集中管理的io_service和tcp::io_stream?我使用的是boost版本

c++ - 链接 boost.asio

我在链接boost.asio时遇到问题。它使用boost.system并且链接器错误以:/boost_1_39_0/boost/system/error_code.hpp:205:对`boost::system::get_system_category()'的undefinedreference这意味着我需要链接boost.system。我已经构建了boost,现在我有几个lib文件。boost_system-mgw32-d-1_39.dll和库libboost_system-mgw34-d-1_39.liblibboost_system-mgw34-mt-d-1_39.liblibb

c++ - 类似于 boost::multi_index for Python

我非常欣赏C++中的boost::multi_index。碰巧我很乐意在Python中使用类似的东西;用于处理来自数字密集型应用程序的数据的脚本。Python有这样的东西吗?我只是想确定它不存在,然后我会尝试自己实现它。不适合我的事情:用Python包装boost::multi_index。它根本无法扩展。在内存中使用sqlite3。它很丑。 最佳答案 由于python集合仅存储对对象的引用,而不是对象本身,因此具有多个索引方案的一个集合与仅具有多个集合之间没有太大区别。例如,您的数据可以有多个字典,每个字典都使用不同的键来引用它们

c++ - decaf 线程 vs boost 线程 vs omnithreads

我正在考虑将哪个线程库用于必须在x86、x86_64和powerpc架构上运行的相对较小的C++项目。该项目使用ActiveMQ,它提供decaf::lang::Thread和decaf::util::concurrent工具。我没有使用该库的经验,找不到任何教程/示例,只有文档?你们中有人/女孩曾经使用过无咖啡因线程吗?您能告诉我您的体验并与您知道的其他产品做一些比较吗?谢谢,bb 最佳答案 看起来ActiveMQ的decaf::util::concurrent设施非常好,因为它们提供了一些并发容器和线程池设施,但我仍然可能会投票

c++ - boost::date_time (boost-145) 使用带有微秒计算的 64 位 uint,没有截断

我正在使用date_time来抽象掉平台特性。我需要生成一个64位微秒分辨率uint64_t,它将用于序列化。我不明白下面出了什么问题。#include#include#includeusingnamespaceboost::posix_time;usingboost::uint64_t;ptimeUNIX_EPOCH(boost::gregorian::date(1970,1,1));intmain(){ptimecurrent_time=microsec_clock::universal_time();std::cout这是我得到的输出。originaltime:2010-Dec-

c++ - boost POOL 使用率 - 单例

我已经开始使用boost池作为boost/pool/singleton_pool.hpp中定义的单例,因为我需要重复分配许多相同大小的结构。性能boost非常显着,因为我之前使用的是malloc。我分配的对象由生产者线程放入列表中,消费者线程从另一端取出这些对象并释放这些对象。但是当我释放对象时,任务管理器中进程的内存使用量永远不会减少。我猜这是因为池库预分配了一定数量的内存?此外,当生产者的数据速率增加时,总内存使用量似乎以block为单位增加~10k,但即使在为池中的对象调用free之后也不会减少。我想定期做一些内务处理以释放内存块以减少进程的整体内存使用量。这可能吗?我不能使用p

c++ - 我如何强制 boost::asio 优先完成 async_write 调用而不是运行其他处理程序?

我正在使用boost::asio(不经意的传输方案)实现一组简单的协议(protocol)。这些在运行时受CPU限制。为了boost效率,我想尽量让两台主机都工作。如果主机A可以在执行两项任务之间做出选择,其中一项会让主机B开始计算,而另一项则不会,我希望主机A选择前者。目前,io_service在async_writes之前运行计算密集型处理程序。除非tcp窗口已满(或某些类似情况正在阻止向socker写入数据),否则完成async_write比运行其他处理程序几乎肯定更好。我看过asio的处理程序优先级队列示例。重新实现async_write以使用这样的优先级队列是解决我的问题的唯