草庐IT

EXCEPTION_INLINE

全部标签

c++ - 将 std::exception 转换为 EXCEPTION_POINTERS

我可能完全误解了如何使用GoogleBreakpadAPI,如果是这种情况,我愿意接受评论/建议/粗鲁的评论。我正在尝试调用以下C++函数:boolWriteMinidumpForException(EXCEPTION_POINTERS*exinfo);我有一个对std::exception的引用:try{returnQApplication::notify(receiver,event);}catch(std::exception&ex){eh_.WriteMinidumpForException(?????);//...dosomemorestuffandultimatelykil

c++ - C/C++ : How does this inline if get parsed?

考虑这段代码:intmain(){cout它的输出将是1,而不是Yes或No。为什么将true发送到输出流而不是Yes或No字符串?内联if的其余部分如何解析? 最佳答案 这与操作顺序有关。这与:(coutcout返回ostream&,它必须转换为bool或等价物。?:的结果被扔掉了。如果这看起来很奇怪(为什么这个优先级?),请记住ostream的operator是C++代码中引入的重载,它不允许更改优先级。的优先级专为对移位有意义的内容而设计。它作为流媒体运营商的使用要晚得多。编辑:可能转换为(void*)使用这个:http://

C++ _inline 在单例中被忽略并出现在我的探查器中。怎么会?

我的项目中有很多类被单例访问,如下所示:_inlineGUI_BS_Map*GUI_GetBS_Map(){staticGUI_BS_Mapobj;return&obj;};据我了解,这段代码应该是内联的。我将VisualStudio(2005)选项设置为内联任何合适的内容,并且我的探查器(AQTime)绝对没有设置为覆盖_inlines。但是,当我分析代码时,它们对我的每个单例函数进行了数千次调用。我可能会错过什么?(我正在分析调试版本(以获取分析器的符号)但所有速度优化都已打开。)非常感谢任何建议! 最佳答案 编译器可以随意忽略

c++ - 函数异常规范和标准异常 - foo() throw(Exception)

在C++中,您可以像这样声明具有异常规范的函数:intfoo()constthrow(Exception);我找到了这两个链接:http://www.cplusplus.com/doc/tutorial/exceptions/和http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Fcplr156.htm但有几件事最终没有答案......问题1:为什么要添加异常规范?它会带来任何性能提升吗?编译器会有什么不同?因为

c++ - 捕捉 c++ "Access Violation Writing Exception"?

在我的C++代码中,我有一个代码块,当用户输入无效时会出现“访问冲突写入位置...”异常。我试图在我的try/catchblock中捕获此异常以在异常发生时显示错误消息..但由于某种原因它没有捕获错误。try{//...somecodethatcausesAccessViolationWritingLocationException}catch(...){std::cout我这样做了,但是当异常发生时,控制台没有显示我的错误信息,而是说有一个Unhandledexceptionat0x0F0B0E9A(msvcr110d.dll)inExample.exe:Accessviolatio

c++ - 成员函数模板是否需要 "inline"

如果我在非模板类中有一个成员函数模板并想在类外定义它-我必须使用“内联”吗?例子:classA{templatevoidsomeMethod(Dparam);}template/*inlineneededhere?*/voidA::someMethod(Dparam){}标准的第3.2.5节说函数模板不属于单一定义规则。成员函数模板是这方面的函数模板吗?编辑:如果没有内联,链接器不会提示-但仍然-它是否有效C++03?编辑:到目前为止我学到了什么:gcc(假设还有其他编译器)将隐式模板实例导出为弱符号,这意味着如果它们在多个翻译单元中实例化,在链接时不会发生冲突.由于弱符号不是标准的一

c++ - 为什么 "dynamic exception"保证会导致开销?

在C++11中,这已被弃用:voidfoo()throw();并替换为voidfoo()noexcept;在thisarticle据解释,这样做的原因(除其他外,归结为同一件事)是C++exceptionspecificationsarecheckedatruntimeratherthanatcompiletime,sotheyoffernoprogrammerguaranteesthatallexceptionshavebeenhandled.虽然这对我来说确实有意义,但我不明白为什么首先要动态检查throw(),或者为什么noexcept不提供异常保证除了调用std::termin

c++ - 为什么 regex_match 抛出 "complexity exception"?

我正在尝试测试(使用boost::regex)文件中的一行是否仅包含由空格分隔的数字条目。我遇到了一个我不明白的异常(见下文)。如果有人能解释为什么抛出它,那就太好了。也许我在这里以定义模式的方式做了一些愚蠢的事情?这是代码://regex_test.cpp#include#include#includeusingnamespacestd;usingnamespaceboost;intmain(){//Mybasicpatterntotestforasinglenumericexpressionconststringnumeric_value_pattern="(?:-|\\+)?[[

c++ - 让 Visual Studio 中断用户(std::exception)异常?

我的代码抛出未处理的异常,但VisualStudio中的调试器只中断系统抛出的异常。例如,getaddrinfo的返回值不为零,我的异常应该首先抛出-事实上,如果我在第171行放置一个断点,它会被命中-但调试器只在调用socket时中断。我知道Ihavetoaddmyowntypesexplicitly,orelsecheckAllC++Exceptionsnotinthislist,在ExceptionSettings中,但这是我抛出的std::exception,而std::exception是检查过。如何让VisualStudio调试器在出现异常时自动中断?

c++ - 为什么这段代码会出现 "exception spec is more lax than base"错误?

尝试使用Xcode6.1中的clang版本(基于LLVM3.5svn的clang-600.0.54)编译以下代码,使用-std=c++11和-stdlib=libc++给我一些我不太明白的错误。#includestructImpl{typedefstd::functionL;Ll;inti;};structHndl{Impl*impl;Hndl(Impl*i):impl(i){}~Hndl()noexcept(false){}};intmain(intargc,char*argv[]){Hndlh(newImpl());h.impl->l=[=]{h.impl->i=42;};retu