cloning_2.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 40 行

CPP
40
字号
//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.//Distributed under the Boost Software License, Version 1.0. (See accompanying//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)//This example shows how to transport cloning-enabled boost::exceptions between threads.#include <boost/exception_ptr.hpp>#include <boost/thread.hpp>#include <boost/bind.hpp>void do_work(); //throws cloning-enabled boost::exceptionsvoidworker_thread( boost::exception_ptr & error )    {    try        {        do_work();        error = boost::exception_ptr();        }    catch(    ... )        {        error = boost::current_exception();        }    }// ...continuedvoidwork()    {    boost::exception_ptr error;    boost::thread t( boost::bind(worker_thread,boost::ref(error)) );    t.join();    if( error )        boost::rethrow_exception(error);    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?