1//
2// detail/throw_exception.hpp
3// ~~~~~~~~~~~~~~~~~~~~~~~~~~
4//
5// Copyright (c) 2003-2015 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 ASIO_DETAIL_THROW_EXCEPTION_HPP
12#define ASIO_DETAIL_THROW_EXCEPTION_HPP
13
14
15#include "asio/detail/config.hpp"
16
17
18namespace asio {
19namespace detail {
20
21
22// Declare the throw_exception function for all targets.
23template <typename Exception>
24void throw_exception(const Exception& e);
25
26// Only define the throw_exception function when exceptions are enabled.
27// Otherwise, it is up to the application to provide a definition of this
28// function.
29# if !defined(ASIO_NO_EXCEPTIONS)
30template <typename Exception>
31void throw_exception(const Exception& e)
32{
33  throw e;
34}
35# endif // !defined(ASIO_NO_EXCEPTIONS)
36
37
38} // namespace detail
39} // namespace asio
40
41#endif // ASIO_DETAIL_THROW_EXCEPTION_HPP
42