草庐IT

try-except-block

全部标签

c++ - boost 测试 : catch user defined exceptions

如果我的代码中有用户定义的异常,我将无法进行Boost测试将它们视为失败。例如,BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(MyTest,1)BOOST_AUTO_TEST_CASE(MyTest){//codewhichthrowsuserdefinedexception,notderivedfromstd::exception.}我收到一条通用消息:Caughtexception:....unknownlocation(0):....它不会将此错误识别为失败,因为它不是std::exception。所以它不遵守expected_failures条款

c# - IDE 条件 block 突出显示

设置:假设我有一个相当大的程序,并且正在使用#defines和各种包含/排除各种代码片段的方法。即假设我有一段这样的代码example_file.c:include#ifdefTHISdosomethingreallycoolhere#ifdefTHATdosomethingevencooler#endif#endif定义文件.c:#defineTHATTRUE#defineTHISFALSE现在我不知道这两个语句是否会被包含或使用,除非我查看定义。上面是一个简单的示例,但假设您有50个ifdef,并且它们以不同的方式嵌套,要追踪这50个值中的每一个值是什么有点麻烦。问题:是否存在一个

c++ - "except that a default constructed array is not empty"是什么意思?

在N3337中,我正在阅读§23.3.2.1/3,它指出:Anarraysatisfiesalloftherequirementsofacontainerandofareversiblecontainer(23.2),exceptthatadefaultconstructedarrayobjectisnotemptyandthatswapdoesnothaveconstantcomplexity.在§23.2.1,表96容器要求中,它显示了一个默认构造的对象Xu;,其中后置条件是u.empty()。据推测,以下内容:std::arraya;应该导致a.empty()输出1,它确实如此。

c++ - 如果在 user.hpp 中定义了 BOOST_NO_EXCEPTIONS,为什么不能编译 boost::shared_ptr

我有一个嵌入式系统,想在这个系统中使用boost,但需要禁用异常,因为我不想支付异常成本。boost给了一个user.hpp和可设置的宏选项BOOST_NO_EXCEPTIONS和BOOST_NO_EXCEPTION_STD_NAMESPACE,但是boost::shared_ptr不能编译(更准确的说,不能链接)如果定义了这两个宏。shared_ptr_boost.cpp:(.text._ZN5boost6detail12shared_countC2IiEEPT_[_ZN5boost6detail12shared_countC5IiEEPT_]+0x7a):undefinedrefe

c++ - 快速取幂:real^real (C++ MinGW, Code::Blocks)

我正在编写一个应用程序,在某个block中我需要对实数取幂大约3*500*500次。当我使用exp(y*log(x))算法时,程序明显滞后。如果我使用另一种基于处理数据类型的算法,速度会快得多,但该算法不是很精确,尽管它为模拟提供了不错的结果,但它在速度方面仍然不够完美。有没有比exp(y*log(x))更快的求实幂的精确求幂算法?提前谢谢你。 最佳答案 如果您需要良好的准确性,并且您对先验的基数(x值)的分布一无所知,那么pow(x,y)是最好的可移植答案(在许多-不是所有-平台上),这将比exp(y*log(x))更快,并且在数

c++ - 您使用 Code::Blocks 有什么经验?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。我查看了Code::Blocks,它看起来非常适合C++开发,我喜欢它的多平台功能(到处运行),但我想得到您的反馈。在专业环境中使用是否足够好/稳定?谢谢。

c++ - code::blocks 是否保留 c++ 关键字以外的名称?

我是code::blocks的新手,在C++方面也很缺乏经验。我知道有很多关键字,我不应该将它们用于变量名,它们通常以不同的颜色显示,就像在visualstudio中一样。现在,当我将一些代码片段从我的旧vs项目复制到一个新的code::blocks项目时,我的一些变量名突然变色了。例如,在这段代码中,变量begin和end现在显示为绿色,我不明白为什么。intbegin=0;intend=4;intmyarray[end];for(inti=begin;i在某些情况下,这段代码甚至无法编译,我会收到奇怪的“声明冲突”错误。无论如何我可以使用这些名称,还是它们以某种方式保留在code:

c++ - 与 std::current_exception 关联的数据的生命周期

考虑以下代码:std::exception_ptreptr{std::current_exception()};constchar*msg=0;try{if(eptr!=std::exception_ptr{}){std::rethrow_exception(eptr);}}catch(conststd::exception&ex){msg=ex.what();}我可以在catch之外使用msg吗?换句话说,ex是否引用与eptr相同的异常实例?谢谢! 最佳答案 rethrow_exception的描述说:Throws:theexc

c++ - 错误 : no match for ‘operator<’ in ‘__x < __y’ when trying to insert in two map

在代码中有两个映射。一个存储对和另一个存储,其中值是具有5个变量的类,数据类型为字符串、整数、字符串、整数、整数。但是在插入第二个映射期间,我收到错误g++错误:尝试在map中插入时,'__x如何解决。classValues{private:std::stringC_addr;intC_port;std::stringS_addr;intS_port;intC_ID;public:Values(std::string,int,std::string,int,int);voidprintValues();};Values::Values(std::stringCaddr,intCport

c++ - 错误 - C++ 中的 "throws different exceptions"

我收到一个错误提示error:declarationof'virtualFXHost::~FXHost()'throwsdifferentexceptionserror:thanpreviousdeclaration'virtualFXHost::~FXHost()throw()'我不确定如何开始解决这个问题,我以前从未遇到过。在我的.h中我有:public:virtual~FXHost()throw();在我的.cpp中我有:FXHost::~FXHost(){gHost=NULL;}感谢指点。 最佳答案 函数声明末尾的throw