草庐IT

ZN5boost

全部标签

c++ - 代码块、MinGW、Boost 和静态链接问题

我正在将代码块与MinGW一起使用,并试图获得一个简单的程序来使用静态链接进行编译。我使用thesedirections构建了Boost库.一切顺利,我能够成功编译这个简单的程序(它编译了,我知道它不起作用,因为它在消息发送到控制台之前退出,但我只是想让它编译)。如果我的链接器库中有一个DLL,它可以正常编译,但是当我将它与具有相同内容的静态.a库切换时,我会得到undefinedreference,例如“对`_imp___ZN5boost6threadD1Ev'的undefinedreference”。我不知道问题出在哪里,也找不到解决方案。我认为这可能与链接器设置有关,但我找不到有

c++ - 'managed_shared_memory' 应该分配多少内存? ( boost )

我正在寻找关于在通过boost::interprocess的managed_shared_memory创建静态共享内存块时应该分配多少内存的明确答案(如果确实存在的话)。连officialexamples似乎分配arbitrarilylarge内存块。考虑以下结构://Example:simplestructwithtwo4-bytefieldsstructPoint2D{intx,y;};我最初的react是必要的大小是8个字节,或sizeof(Point2D)。当我尝试构造一个对象时,这惨遭失败,在运行时出现段错误。//BAD:8bytesisnowherenearenoughme

c++ - boost::asio,线程和同步

这与thisquestion有些相关,但我想我需要了解更多。几天来,我一直在努力思考如何做到这一点(同时处理其他部分),但现在是我硬着头皮使用多线程的时候了。另外,我需要的信息比链接的问题多一些。首先,关于多线程。因为我一直在测试我的代码,所以我没有为任何多线程而烦恼。它只是一个控制台应用程序,它启动与测试服务器的连接,然后处理其他所有内容。主循环是这样的:while(true){Root::instance().performIO();//callsio_service::runOne();}当我编写我的主应用程序时,我猜这个解决方案是NotAcceptable(因为它必须在消息循环

c++ - boost spirit : Lex + Qi error reporting

我正在为使用缩进等的相当复杂的配置文件编写解析器。我决定使用Lex将输入分解为标记,因为它似乎让生活更轻松。问题是我找不到任何将Qi错误报告工具(on_error)与对标记流而不是字符流进行操作的解析器一起使用的示例。要在on_error中使用的错误处理程序需要一些才能准确指示错误在输入流中的位置。所有例子都只是构造std::string从一对迭代器中打印出来。但是如果使用Lex,那么迭代器就是标记序列的迭代器,而不是字符。在我的程序中,这导致挂起std::string在我注意到无效的迭代器类型之前构造函数。据我所知,token可以将一对迭代器保存到输入流中作为它的值。这是默认属性类型

c++ - boost::adaptors::transformed 后跟 boost::adaptors::filtered 调用函数两次

我正在尝试链接boost::adaptors::transformed(我们称之为map)到boost::adaptors::filtered(我们称它为filter)-这个想法是映射fun在一个范围内返回一个“可能”(在我的例子中,一个std::pair)并只输出部分结果。我的第一个实现:defineBOOST_RESULT_OF_USE_DECLTYPE//enablelambdaargumentsforBoost.Range#include#includestructOnlyEven{typedefintargument_type;typedefstd::pairresult_t

c++ - boost 日志 severity_logger init_from_stream

我正在使用boost1.54.0。您可以在下面找到说明我的问题的最小示例。我用的是boost日志的severity_logger。我想从流中配置我的接收器。(在下面的示例中,我使用了一个字符串流。在我的真实应用程序中,流来自文件。)我想将%Severity%用于输出或过滤目的。我的问题是:如果我按照下面的示例使用它,%Severity%是空的。%LineID%和%Message%按预期填充。如果我按照注释掉的行设置接收器,它会按预期工作。有什么想法吗?#include#include#include#include#include#includeenumSeverityLevel{tr

c++ - boost中rtree中的打包算法

大家好,我知道如果在boost中使用范围值创建rtree,它将使用打包算法。我需要一个使用打包算法的rtree示例。这是我使用二次算法的代码usingpoint=bg::model::point;usingpointI=std::pair;vectorcontourCenters//hassomevaluebgi::rtree>rtree;vectorcloud;for(size_ti=0;i();inty=contourCenters[i].get();cout我想用打包算法创建rtree,因为它似乎是boost中最快的算法。请指导我如何在boost中使用打包算法创建一个rtree。

c++ - boost 随机数库,对不同的变量生成器使用相同的随机数生成器

似乎可以使用以下代码从特定的正态分布中生成随机数:floatmean=0,variance=1;boost::mt19937randgen(static_cast(std::time(0)));boost::normal_distributionnoise(mean,variance);variate_generator>nD(randgen,noise);floatrandom=nD();这很好用,但是,我希望能够从多个分布中提取数字,即有人会这样想:floatmean1=0,variance1=1,mean2=10,variance2=0.25;boost::mt19937rand

c++ - 如何构建 boost 静态库?

这有效,但不会构建boost库的静态版本(也许我错了?)bjam--toolset=gcc--prefix=C:\boost_1_49_0-mingwinstall尝试发出以下命令:bjam--toolset=gcc--prefix=C:\boost_1_49_0-mingw--build-type=completeinstall但它不起作用。 最佳答案 您应该能够使用link=static选项让您将库编译到二进制文件中而不需要动态库:sudo./b2link=static检查您的阶段目录以确保它位于正确的位置,然后重新安装到您包含

c++ - boost:asio 线程池实现,用于偶尔同步的任务

我有一个“主要”函数,它在每个时间步执行一次许多小的、独立的任务。但是,在每个时间步之后,我必须等待所有任务完成才能继续。我想让程序多线程化。我尝试过使用boost-offshoot线程池实现,我尝试过使用线程的(共享指针)vector,我尝试过asio线程池的想法(使用io_service,建立一些工作,然后将运行分发到线程并将处理程序发布到io_service)。所有这些似乎都有很多开销为我的“许多小任务”创建和销毁线程,我想要一种方法,最好使用asio工具,来实例化一个io_service,一个thread_group,将处理程序发布到io_service,并在发布更多任务之前等