1#ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
2#define BOOST_CURRENT_FUNCTION_HPP_INCLUDED
3
4// MS compatible compilers support #pragma once
5
6#if defined(_MSC_VER) && (_MSC_VER >= 1020)
7# pragma once
8#endif
9
10//
11// boost/current_function.hpp - BOOST_CURRENT_FUNCTION
12//
13// Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
14//
15// Distributed under the Boost Software License, Version 1.0.
16// See accompanying file LICENSE_1_0.txt or copy at
17// http://www.boost.org/LICENSE_1_0.txt
18//
19// http://www.boost.org/libs/assert/current_function.html
20//
21
22namespace boost
23{
24
25namespace detail
26{
27
28inline void current_function_helper()
29{
30
31#if defined( BOOST_DISABLE_CURRENT_FUNCTION )
32
33# define BOOST_CURRENT_FUNCTION "(unknown)"
34
35#elif defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__)
36
37# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
38
39#elif defined(__DMC__) && (__DMC__ >= 0x810)
40
41# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
42
43#elif defined(__FUNCSIG__)
44
45# define BOOST_CURRENT_FUNCTION __FUNCSIG__
46
47#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
48
49# define BOOST_CURRENT_FUNCTION __FUNCTION__
50
51#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550)
52
53# define BOOST_CURRENT_FUNCTION __FUNC__
54
55#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
56
57# define BOOST_CURRENT_FUNCTION __func__
58
59#elif defined(__cplusplus) && (__cplusplus >= 201103)
60
61# define BOOST_CURRENT_FUNCTION __func__
62
63#else
64
65# define BOOST_CURRENT_FUNCTION "(unknown)"
66
67#endif
68
69}
70
71} // namespace detail
72
73} // namespace boost
74
75#endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
76