1// Boost.TypeErasure library
2//
3// Copyright 2011-2012 Steven Watanabe
4//
5// Distributed under the Boost Software License Version 1.0. (See
6// accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//
9// $Id$
10
11#ifndef BOOST_TYPE_ERASURE_EXCEPTION_HPP_INCLUDED
12#define BOOST_TYPE_ERASURE_EXCEPTION_HPP_INCLUDED
13
14#include <boost/config.hpp>
15#include <stdexcept>
16#include <typeinfo>
17#include <string>
18
19namespace boost {
20namespace type_erasure {
21
22/**
23 * Exception thrown when the arguments to a primitive concept
24 * are incorrect.
25 *
26 * \see \call, \require_match
27 */
28class BOOST_SYMBOL_VISIBLE bad_function_call : public ::std::invalid_argument
29{
30public:
31 bad_function_call() : ::std::invalid_argument("bad_function_call") {}
32};
33
34/**
35 * Exception thrown when an \any_cast to a reference or value fails.
36 */
37class BOOST_SYMBOL_VISIBLE bad_any_cast : public std::bad_cast {};
38
39}
40}
41
42#endif
43

source code of boost/libs/type_erasure/include/boost/type_erasure/exception.hpp