草庐IT

no-exceptions

全部标签

c++ - 如何将消息附加到 std::exception?

我想做以下事情:std::stringfileName="file";std::ifstreamin(fileName.c_str());in.exceptions(std::istream::failbit);try{loadDataFrom(in);}catch(std::ios_base::failure&exception){std::stringlocation=std::string("infile\n")+fileName;//appendthe"location"totheerrormessage;throw;}如何将错误消息附加到异常? 最

c++ - 安置新的和异常(exception)

“placementnew”运算符声明如下:void*operatornew(std::size_tsize,void*ptr)noexcept;但是虽然它不涉及任何实际分配,因此消除了错误的分配异常,但指针仍然可能指向错误的位置,在这种情况下,人们会期望得到一个范围或溢出/下溢错误,但是它被声明为noexcept的事实不会直接终止执行吗?这是否也意味着在C++11之前放置new将抛出并尝试处理std::unexpected而不是直接处理std::set_unexpected崩溃?“以防万一”,难道不应该有大量的placementnew吗? 最佳答案

c++ - boost::exception 和 std::exception 之间的关系

假设有如下代码:try{//Dosomebooststuffhere}catch(conststd::exception&stdEx){cout问题:1)我知道代码适用于某些boost异常,即使std::exception和boost::exception不在同一个继承路径上。为什么它会起作用?2)它是否适用于所有boost异常?换句话说,是否有可以触发低于std::exception处理程序的boost::exception处理程序的示例? 最佳答案 如您所说,boost::exception不是从std::exception派生

c++ - Qt 5.4 中的 "No debugger set up"

这个问题在这里已经有了答案:QtCreator5-Nodebuggersetup(1个回答)关闭7年前。我已经安装了QtCreator(Qt5.4)。当我调试我的Qt项目时,它不会显示“未设置调试器”。现在我的电脑上已经安装了VC-2010,显然我有调试器(我验证了所有的工作)但是我是否必须为QtCreator下载另一个调试器?如何配置调试器才能工作?

c++ - 'Windows.h : No such file or directory"error when changing Platform Toolset to v140_xp

这个问题在这里已经有了答案:HowtotargetWindowsXPinMicrosoftVisualStudioC++[duplicate](2个答案)关闭4年前。我尝试为WindowsXP编译一个应用程序;正常的可执行文件给出错误:"...isnotavalidWin32application."我读到我可以通过将平台工具集更改为VisualStudio2015-WindowsXP(v140_xp)来创建与XP兼容的可执行文件,但是当我这样做然后尝试编译时,它给了我以下错误:Cannotopenincludefile:'Windows.h':Nosuchfileordirector

c++ - 带有 RcppArmadillo 的 R 包中的 ARMA_NO_DEBUG

我想在访问RcppArmadillo中的矩阵元素时禁用边界检查。Armadillo的文档说Armadillocanbeconfiguredviaeditingthefileinclude/armadillo_bits/config.hpp.Specificfunctionalitycanbeenabledordisabledbyuncommentingorcommentingoutaparticular#define,listedbelow.但是在R包的上下文中,我该如何激活这个指令?我试图创建一个config.h文件#ifndefCONFIG_LOADED#defineCONFIG_

c++ - 警告 C4180 : qualifier applied to function type has no meaning; ignored

我已经设置了编译器/Za选项来禁用语言扩展,以便编译器严格使用标准ISOC++。这是我收到以下警告的示例接口(interface)类warningC4180:qualifierappliedtofunctiontypehasnomeaning;ignored这是关于函数返回类型中的const限定符,如果我删除const,警告就会消失,但我不想这样做,我想重新启用lanqage扩展。我的问题是:这个警告合理吗?如果不是,那么我将使用pragma禁用警告,但在此之前我想确保此警告是“误报”因为下面的类是正确的ANSIISOC++不是吗?所以警告应该被禁用?classIBet{public:

c++ - "no ' operator++(int) ' declared for postfix '++ ' [-fpermissive]"枚举

这个问题在这里已经有了答案:HowcanIiterateoveranenum?(28个答案)Whycan'tIincrementavariableofanenumeratedtype?(10个答案)关闭9年前。我有枚举enumProgramID{A=0,B=1,C=2,MIN_PROGRAM_ID=A,MAX_PROGRAM_ID=C,}CurrentProgram;现在,我正尝试像这样递增CurrentProgram:CurrentProgram++,但编译器提示:没有为后缀'+声明'operator++(int)'+'[-fpermissive]。我认为有这样一个运算符可以增加“枚

c++ - make 给出错误 make : *** No rule to make target `clean' . Stop

您好,我有一个简单的MakeFile,其中包含:clean:rm-fex1但是当我运行命令makeclean时,出现以下错误:make:***Noruletomaketarget`clean'.Stop.我不确定我做错了什么,它只有2行,而第2行是以TAB而不是空格开头的。有人知道吗?我在MacOSX10.9.2上我实际上正在尝试学习c并遵循本教程:http://c.learncodethehardway.org/book/ex2.html 最佳答案 MakeFile应该命名为Makefile。去掉大写字母F。

c++ - 错误 : no matching function for call to ‘to_string(std::basic_string<char>&)’

即使在模板中我可以有任何类型,函数to_string对基本字符串不起作用:例如:std::stringstr("mystring");my_class(str);用这个仿函数定义:templatevoidoperator()(valuetypevalue){...private_string_field=std::to_string(value);不起作用。这是错误:error:nomatchingfunctionforcallto‘to_string(std::basic_string&)’避免它的最佳方法是什么。事先,我要求避免仅仅因为一些常见的关键字就链接到不相关的问题。