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()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__) || 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