| #ifndef BOOST_THREAD_EXPERIMENTAL_PARALLEL_V1_EXCEPTION_LIST_HPP |
| #define BOOST_THREAD_EXPERIMENTAL_PARALLEL_V1_EXCEPTION_LIST_HPP |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // |
| // (C) Copyright Vicente J. Botet Escriba 2014. 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) |
| // |
| // See http://www.boost.org/libs/thread for documentation. |
| // |
| ////////////////////////////////////////////////////////////////////////////// |
| |
| #include <boost/thread/detail/config.hpp> |
| #include <boost/thread/experimental/parallel/v1/inline_namespace.hpp> |
| |
| #include <boost/exception_ptr.hpp> |
| #include <exception> |
| #include <list> |
| |
| #include <boost/config/abi_prefix.hpp> |
| |
| namespace boost |
| { |
| namespace experimental |
| { |
| namespace parallel |
| { |
| BOOST_THREAD_INLINE_NAMESPACE(v1) |
| { |
| |
| class BOOST_SYMBOL_VISIBLE exception_list: public std::exception |
| { |
| typedef std::list<exception_ptr> exception_ptr_list; |
| exception_ptr_list list_; |
| public: |
| typedef exception_ptr_list::const_iterator const_iterator; |
| |
| ~exception_list() BOOST_NOEXCEPT_OR_NOTHROW {} |
| |
| void add(exception_ptr const& e) |
| { |
| list_.push_back(e); |
| } |
| size_t size() const BOOST_NOEXCEPT |
| { |
| return list_.size(); |
| } |
| const_iterator begin() const BOOST_NOEXCEPT |
| { |
| return list_.begin(); |
| } |
| const_iterator end() const BOOST_NOEXCEPT |
| { |
| return list_.end(); |
| } |
| const char* what() const BOOST_NOEXCEPT_OR_NOTHROW |
| { |
| return "exception_list"; |
| } |
| |
| }; |
| } |
| |
| } // parallel |
| } // experimental |
| } // boost |
| #include <boost/config/abi_suffix.hpp> |
| |
| #endif |