草庐IT

copy_exception

全部标签

C++ std::system_error 与 common catch std::exception block 的用法

std::system_error处理带有相关错误代码的异常。是否可以使用公共(public)catchblock来获取std::system_error异常消息及其代码?像这样try{//codegeneratingexception}catch(conststd::exception&ex){//catchallstd::exceptionbasedexceptionslogger.log()唯一的方法是直接捕获std::system_error类型并在捕获基本异常类型之前获取其代码吗?广泛使用std::system_error的最佳方法是什么? 最佳答

c++ - 使用哪个 : move assignment operator vs copy assignment operator

我似乎不明白为什么要使用移动赋值运算符:CLASSA&operator=(CLASSA&&other);//moveassignmentoperator结束了,复制赋值运算符:CLASSA&operator=(CLASSAother);//copyassignmentoperator移动赋值运算符仅采用r值引用,例如CLASSAa1,a2,a3;a1=a2+a3;在复制赋值运算符中,other可以是使用复制构造函数或移动构造函数的构造函数(如果other是用右值初始化的,它可以是移动构造的——如果move-constructor定义了——)。如果它是copy-constructed,我

c++ - 获取 boost::exception 的 what() 消息

在下面的代码中,我想获取boost::exception的what()消息。#include#include#includeintmain(void){try{inti(boost::lexical_cast("42X"));}catch(boost::exceptionconst&e){std::cout当我运行它时,我收到消息:Exception:Throwlocationunknown(considerusingBOOST_THROW_EXCEPTION)Dynamicexceptiontype:boost::exception_detail::clone_impl>但是当我没有

c++ - std::exception_ptr 线程安全吗?

我有一个工作线程,它通过std::thread持续运行、创建和管理。在我的工作线程的顶层,我有一个try/catchblock,里面有一个while循环。如果异常泄漏到线程的顶层,我会捕获它并将其存储在std::exception_ptr中,它是还拥有非静态线程函数的类的成员://Inclassheader(insideclassdeclaration)std::exception_ptrm_threadException;//InclassCPPfilevoidMyClass::MyThreadFunction(){try{while(true){//Dothreadstuff}}c

C++ : How can I solve a first-chance exception caused at an unknown point?

我正在处理的一个C++项目在抛出第一次异常时终止。当我第一次尝试访问map,int>时,这发生在处于Debug模式的VisualStudio2008中其中包含单个键值对。代码在逻辑上没有任何错误。我已经阅读了有关第一次机会异常的信息,并且了解它们可能并不总是有问题。尽管如此,我尝试打破所有此类异常,并且正如预期的那样发现生成了几个不会导致问题的异常。我正在处理的类非常大并且包含许多自定义内存分配。我推测其中之一以某种方式导致了问题。然而,我花了几个小时试图找到一种方法来确定问题出在哪里,但一直无法做到。下面列出了第一次异常输出。这不是很有帮助!First-chanceexception

c++ - ‘operator=’ 的模糊重载与 c++11 std::move and copy and swap idiom

我收到以下错误:[matt~]g++-std=c++11main.cpp-DCOPY_AND_SWAP&&./a.outmain.cpp:Infunction‘intmain(int,constchar*const*)’:main.cpp:101:24:error:ambiguousoverloadfor‘operator=’in‘move=std::move((*©))’main.cpp:101:24:note:candidatesare:main.cpp:39:7:note:Test&Test::operator=(Test)main.cpp:52:7:note:Test&

c++ - 为什么 std::copy_n 采用模板参数而不是 std::size_t?

这么简单的问题。templateOutputItcopy_n(InputItfirst,Sizecount,OutputItresult);为什么std::copy_n为要复制的元素数量取一个类型,而不是简单地std::size_t?我只是想不出一个理由。templateOutputItcopy_n(InputItfirst,std::size_tcount,OutputItresult); 最佳答案 在这种情况下,推测原始原理大多是徒劳的,但对于这种设计copy_n可以用负计数调用,例如int或ptrdiff_ttype,在这种情

c++ - 如何保证在 Visual Studio 2005 下的 C++ 中捕获 EXCEPTION_STACK_OVERFLOW 结构化异常?

背景我有一个带有Poof-Crash[1]的应用程序。我相当确定这是由于堆栈损坏造成的。应用程序是多线程的。我正在使用“启用C++异常:是的,带有SEH异常(/EHa)”进行编译。我编写了一个SE翻译器函数并用它调用了_set_se_translator()。我已经为set_terminate()和set_unexpected()编写了函数并进行了设置。为了获得StackOverflow,我必须在高负载下以Release模式运行几天。在调试器下运行不是一种选择,因为应用程序的执行速度不足以达到查看问题所需的运行时间。我可以通过在执行其中一个函数时添加无限递归来模拟该问题,从而测试是否捕

c++ - 如何实现类似 std::copy_if 但在插入到不同容器之前应用函数的方法

完全公开,这可能是一个锤子和钉子的情况,在不需要的时候尝试使用STL算法。我在我正在使用的一些C++14代码中看到了一个重新出现的模式。我们有一个迭代的容器,如果当前元素符合某些条件,那么我们将其中一个元素字段复制到另一个容器。模式是这样的:for(autoit=std::begin(foo);it!=std::end(foo);++it){autox=it->Some_member;//Note,thecheckusuallyusesthefieldwouldaddtothenewcontainer.if(f(x)&&g(x)){bar.emplace_back(x);}}这个想法几

c++ - 如何在 boost::filesystem 中使用 copy_file?

我想将一个文件从一个目录复制到另一个目录,但我的程序总是因为某些原因而中止。之前有没有人这样做过,可以告诉我哪里出了问题吗?我怎么能捕捉到copy_file抛出的异常,我查看了boost网站,但我找不到任何关于异常的相关信息。pathuser_path("C:\\MyFolder");boost::filesystem::create_directory(user_path);pathfile("C:\\Another\\file.txt");boost::filesystem::copy_file(file,user_path);谢谢, 最佳答案