~ubuntu-branches/ubuntu/wily/davix/wily

« back to all changes in this revision

Viewing changes to deps/boost_intern/boost/throw_exception.hpp

  • Committer: Package Import Robot
  • Author(s): Mattias Ellert
  • Date: 2015-07-31 13:17:55 UTC
  • mfrom: (5.1.3 sid)
  • Revision ID: package-import@ubuntu.com-20150731131755-mizprbmn7ogv33te
Tags: 0.4.1-1
* Update to version 0.4.1
* Implement Multi-Arch support

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#ifndef UUID_AA15E74A856F11E08B8D93F24824019B
2
 
#define UUID_AA15E74A856F11E08B8D93F24824019B
3
 
#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
4
 
#pragma GCC system_header
5
 
#endif
6
 
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
7
 
#pragma warning(push,1)
8
 
#endif
9
 
 
10
 
// MS compatible compilers support #pragma once
11
 
 
12
 
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
13
 
# pragma once
14
 
#endif
15
 
 
16
 
//
17
 
//  boost/throw_exception.hpp
18
 
//
19
 
//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
20
 
//  Copyright (c) 2008-2009 Emil Dotchevski and Reverge Studios, Inc.
21
 
//
22
 
//  Distributed under the Boost Software License, Version 1.0. (See
23
 
//  accompanying file LICENSE_1_0.txt or copy at
24
 
//  http://www.boost.org/LICENSE_1_0.txt)
25
 
//
26
 
//  http://www.boost.org/libs/utility/throw_exception.html
27
 
//
28
 
 
29
 
#include <boost/exception/detail/attribute_noreturn.hpp>
30
 
#include <boost/detail/workaround.hpp>
31
 
#include <boost/config.hpp>
32
 
#include <exception>
33
 
 
34
 
#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x593) )
35
 
# define BOOST_EXCEPTION_DISABLE
36
 
#endif
37
 
 
38
 
#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, < 1310 )
39
 
# define BOOST_EXCEPTION_DISABLE
40
 
#endif
41
 
 
42
 
#if !defined( BOOST_EXCEPTION_DISABLE )
43
 
# include <boost/exception/exception.hpp>
44
 
#if !defined(BOOST_THROW_EXCEPTION_CURRENT_FUNCTION)
45
 
# include <boost/current_function.hpp>
46
 
# define BOOST_THROW_EXCEPTION_CURRENT_FUNCTION BOOST_CURRENT_FUNCTION
47
 
#endif
48
 
# define BOOST_THROW_EXCEPTION(x) ::boost::exception_detail::throw_exception_(x,BOOST_THROW_EXCEPTION_CURRENT_FUNCTION,__FILE__,__LINE__)
49
 
#else
50
 
# define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x)
51
 
#endif
52
 
 
53
 
namespace boost
54
 
{
55
 
#ifdef BOOST_NO_EXCEPTIONS
56
 
 
57
 
void throw_exception( std::exception const & e ); // user defined
58
 
 
59
 
#else
60
 
 
61
 
inline void throw_exception_assert_compatibility( std::exception const & ) { }
62
 
 
63
 
template<class E> BOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const & e )
64
 
{
65
 
    //All boost exceptions are required to derive from std::exception,
66
 
    //to ensure compatibility with BOOST_NO_EXCEPTIONS.
67
 
    throw_exception_assert_compatibility(e);
68
 
 
69
 
#ifndef BOOST_EXCEPTION_DISABLE
70
 
    throw enable_current_exception(enable_error_info(e));
71
 
#else
72
 
    throw e;
73
 
#endif
74
 
}
75
 
 
76
 
#endif
77
 
 
78
 
#if !defined( BOOST_EXCEPTION_DISABLE )
79
 
    namespace
80
 
    exception_detail
81
 
    {
82
 
        template <class E>
83
 
        BOOST_ATTRIBUTE_NORETURN
84
 
        void
85
 
        throw_exception_( E const & x, char const * current_function, char const * file, int line )
86
 
        {
87
 
            boost::throw_exception(
88
 
                set_info(
89
 
                    set_info(
90
 
                        set_info(
91
 
                            enable_error_info(x),
92
 
                            throw_function(current_function)),
93
 
                        throw_file(file)),
94
 
                    throw_line(line)));
95
 
        }
96
 
    }
97
 
#endif
98
 
} // namespace boost
99
 
 
100
 
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
101
 
#pragma warning(pop)
102
 
#endif
103
 
#endif