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. (See
16 // 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/utility/current_function.html
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(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600))
32 
33 # define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
34 
35 #elif defined(__FUNCSIG__)
36 
37 # define BOOST_CURRENT_FUNCTION __FUNCSIG__
38 
39 #elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
40 
41 # define BOOST_CURRENT_FUNCTION __FUNCTION__
42 
43 #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550)
44 
45 # define BOOST_CURRENT_FUNCTION __FUNC__
46 
47 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
48 
49 # define BOOST_CURRENT_FUNCTION __func__
50 
51 #else
52 
53 # define BOOST_CURRENT_FUNCTION "(unknown)"
54 
55 #endif
56 
57 }
58 
59 } // namespace detail
60 
61 } // namespace boost
62 
63 #endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
64