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 2002-2018 Peter Dimov
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
20 //
21 
22 namespace boost
23 {
24 
25 namespace detail
26 {
27 
current_function_helper()28 inline 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__) || defined(__clang__)
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