草庐IT

BOOST_NO_EXCEPTIONS

全部标签

c++ - 与 boost::property_tree XML 解析器一起使用时 boost::coroutine 库崩溃

我正在使用Simple-Web-Server用于创建将XML转换为JSON的简单Web服务的库,反之亦然。反过来,它使用了几个boost库以及其中的boost::coroutine。对于XMLJSON转换,我使用boost::property_tree库进行中间表示。这是代码:#include#include#include#defineBOOST_SPIRIT_THREADSAFE#include#include#includeusingnamespacestd;usingnamespaceboost::property_tree;usingHttpServer=SimpleWeb:

ARMv8-AArch64 的异常处理模型详解之异常处理概述Handling exceptions

异常处理模型详解之异常处理概述一,异常处理相关概念二,异常处理概述一,异常处理相关概念在介绍异常处理之前,有必要了解一些关于异常处理状态的术语:当处理器响应一个异常时,我们称该异常被获取了(taken)。处理器响应异常之前的状态被称为takenfrom。处理器响应异常之后的状态被称为takento。因此,当处理器识别到异常时,此时处理器处于takenfrom。在异常之后的状态称为takento。当异常处理完成后,处理器需要返回到异常发生前的状态,这个过程称为exceptionreturn。并且在ARM架构中有专门的指令用于异常返回(ERET):处理器在执行异常返回指令之前的状态,称为retur

c++ - 为什么 Xcode 在创建经过地址清理的构建时定义 _LIBCPP_HAS_NO_ASAN?

Xcode7允许使用地址清理器来查找C/C++中的内存问题。https://github.com/google/sanitizers/wiki/AddressSanitizer打开地址清理程序会传递编译和链接器标志-fsanitize=address并定义_LIBCPP_HAS_NO_ASAN。当从命令行构建我的库并在未定义_LIBCPP_HAS_NO_ASAN的已清理版本上运行测试时,我看到了不可重复的地址清理器报告的内存访问问题。像Xcode那样定义_LIBCPP_HAS_NO_ASAN可以解决sanitizer问题,但我很好奇为什么需要这样做。为什么我需要使用AppleClang

c++ - 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error>>

我创建了客户端应用程序。当我发送单个消息clientsever时它工作正常。但是当我出于性能目的发送大量消息时,客户端会以两种不同的方式崩溃:(gdb)runStartingprogram:/home/x64joxer/workerGenerators/Worker2/worker-t-i192.168.0.6-p6000-d5-l//home/x64joxer/workerGenerators/Worker2/[Threaddebuggingusinglibthread_dbenabled]Usinghostlibthread_dblibrary"/lib/x86_64-linux-

c++ - 使用 Boost 库 Qt C++ 更新翻译文件

我在我的C++项目中使用Boost库。我将它包含在PRO文件中,如下所示:win32:INCLUDEPATH+=C:/boost_1_60_0win32:LIBS+="-LC:/boost_1_60_0/stage/lib/"但是,当我在终端(cmd)上运行以下命令来更新我的翻译文件时:lupdateMyProject.pro它在Boost库路径中搜索文件进行更新。这正常吗?我该怎么做才能不在Boost库路径中搜索?现在,当我需要运行lupdate命令时,我正在评论Boost包含行,但我不想每次需要更新我的翻译文件时都这样做。Qt5.3.2boost1.6.0

c++ - 为什么 Boost 原子使用中的多生产者队列是无等待的

BoostAtomic示例中的无等待多生产者队列:templateclasswaitfree_queue{public:structnode{Tdata;node*next;};voidpush(constT&data){node*n=newnode;n->data=data;node*stale_head=head_.load(boost::memory_order_relaxed);do{n->next=stale_head;}while(!head_.compare_exchange_weak(stale_head,n,boost::memory_order_release));

c++ - gcc 和 g++ 错误 : error trying to exec 'cc1plus' : execvp: No such file or directory

我在编译时遇到问题.c和.cpp使用gcc的文件和g++,对于这两种情况,我都收到了消息:g++(orgcc):errortryingtoexec'cc1plus':execvp:Nosuchfileordirectory`我已经尝试重新安装gcc和g++并确保它们的版本相同。编辑:我使用的是ubuntu16.04.1LTS,g++和gcc的版本都是5.4.020160609。以下是echo|g++-v-xc++-fsyntax-only-的输出:Usingbuilt-inspecs.COLLECT_GCC=g++Target:x86_64-linux-gnuConfiguredwit

c++ - 如何使用 Boost.Spirit.Qi 增量解析(并作用于)大文件?

我为自定义文本文件格式创建了一个Qi解析器。有数以万计的条目要处理,每个条目通常有1-10个子条目。我放了一个精简的解析器工作示例here.#include#include#include#include#include#include#include#include#include#include#include#include#includeusingstd::string;usingstd::vector;usingstd::cout;usingstd::endl;namespacemodel{namespaceqi=boost::spirit::qi;structspectru

c++ - boost 收集范围的适配器

我想编写一个boost适配器放在适配器链的末尾以创建一个集合,如下所示:sets=input|filtered(...)|transformed(...)|to_set;使用Method3.1我写了下面的代码,它似乎按预期工作:namespacedetail{structto_set_forwarder{};};templateinlineautooperator|(R&r,detail::to_set_forwarder){returnset(r.begin(),r.end());}templateinlineautooperator|(constR&r,detail::to_set

c++ - 使用 boost spirit 的递归 BNF 规则

我正在尝试使用boostspirit为以下BNF规则编写解析器(Boostv1.64)规则是:::=integer::="in"|"out"|"in_out"::="["[]"]"::="("(",")+")"::=||下面是我的尝试,使用boost::make_recursive_variant它似乎在字符串in上工作正常但它在in[2]上失败了。我的错误在哪里?什么是优雅的解决方案?namespaceAst{enumclassTypeName{IN,OUT,INOUT};usingNumericLiteral=int;usingTypeSpec=boost::make_recurs