1// 2// impl/multiple_exceptions.ipp 3// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4// 5// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) 6// 7// Distributed under the Boost Software License, Version 1.0. (See accompanying 8// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 9// 10 11#ifndef BOOST_ASIO_IMPL_MULTIPLE_EXCEPTIONS_IPP 12#define BOOST_ASIO_IMPL_MULTIPLE_EXCEPTIONS_IPP 13 14#if defined(_MSC_VER) && (_MSC_VER >= 1200) 15# pragma once 16#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) 17 18#include <boost/asio/detail/config.hpp> 19#include <boost/asio/multiple_exceptions.hpp> 20 21#include <boost/asio/detail/push_options.hpp> 22 23namespace boost { 24namespace asio { 25 26#if defined(BOOST_ASIO_HAS_STD_EXCEPTION_PTR) 27 28multiple_exceptions::multiple_exceptions( 29 std::exception_ptr first) BOOST_ASIO_NOEXCEPT 30 : first_(BOOST_ASIO_MOVE_CAST(std::exception_ptr)(first)) 31{ 32} 33 34const char* multiple_exceptions::what() const BOOST_ASIO_NOEXCEPT_OR_NOTHROW 35{ 36 return "multiple exceptions"; 37} 38 39std::exception_ptr multiple_exceptions::first_exception() const 40{ 41 return first_; 42} 43 44#endif // defined(BOOST_ASIO_HAS_STD_EXCEPTION_PTR) 45 46} // namespace asio 47} // namespace boost 48 49#include <boost/asio/detail/pop_options.hpp> 50 51#endif // BOOST_ASIO_IMPL_MULTIPLE_EXCEPTIONS_IPP 52