1 //
2 // ip/bad_address_cast.hpp
3 // ~~~~~~~~~~~~~~~~~~~~~~~
4 //
5 // Copyright (c) 2003-2016 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_IP_BAD_ADDRESS_CAST_HPP
12 #define ASIO_IP_BAD_ADDRESS_CAST_HPP
13 
14 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 # pragma once
16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 
18 #include "asio/detail/config.hpp"
19 #include <typeinfo>
20 
21 #include "asio/detail/push_options.hpp"
22 
23 namespace asio {
24 namespace ip {
25 
26 /// Thrown to indicate a failed address conversion.
27 class bad_address_cast : public std::bad_cast
28 {
29 public:
30   /// Default constructor.
bad_address_cast()31   bad_address_cast() {}
32 
33   /// Destructor.
~bad_address_cast()34   virtual ~bad_address_cast() ASIO_NOEXCEPT_OR_NOTHROW {}
35 
36   /// Get the message associated with the exception.
what() const37   virtual const char* what() const ASIO_NOEXCEPT_OR_NOTHROW
38   {
39     return "bad address cast";
40   }
41 };
42 
43 } // namespace ip
44 } // namespace asio
45 
46 #include "asio/detail/pop_options.hpp"
47 
48 #endif // ASIO_IP_ADDRESS_HPP
49