#ifndef SPROUT_CURRENT_FUNCTION_HPP #define SPROUT_CURRENT_FUNCTION_HPP #include namespace sprout { namespace detail { inline void current_function_helper() { #if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__) # define SPROUT_CURRENT_FUNCTION __PRETTY_FUNCTION__ #elif defined(__DMC__) && (__DMC__ >= 0x810) # define SPROUT_CURRENT_FUNCTION __PRETTY_FUNCTION__ #elif defined(__FUNCSIG__) # define SPROUT_CURRENT_FUNCTION __FUNCSIG__ #elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500)) # define SPROUT_CURRENT_FUNCTION __FUNCTION__ #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550) # define SPROUT_CURRENT_FUNCTION __FUNC__ #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901) # define SPROUT_CURRENT_FUNCTION __func__ #else # define SPROUT_CURRENT_FUNCTION "(unknown)" #endif } } // namespace detail } // namespace sprout #endif // #ifndef SPROUT_CURRENT_FUNCTION_HPP