//// Copyright 2002, 2017 Peter Dimov Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt //// [#current_function_macro] # Current Function Macro, :toc: :toc-title: :idprefix: ## BOOST_CURRENT_FUNCTION The header `` defines a single macro, `BOOST_CURRENT_FUNCTION`, similar to the C99 predefined identifier `\\__func__`. `BOOST_CURRENT_FUNCTION` expands to either a string literal, or the name of a character array local to the current function, containing the (fully qualified, if possible) name of the enclosing function. If there is no enclosing function, the behavior varies by compiler, but is usually a compile error. Some compilers do not provide a way to obtain the name of the current enclosing function. On such compilers, or when the macro `BOOST_DISABLE_CURRENT_FUNCTION` is defined, `BOOST_CURRENT_FUNCTION` expands to `"(unknown)"`. `BOOST_DISABLE_CURRENT_FUNCTION` addresses a use case in which the programmer wishes to eliminate the string literals produced by `BOOST_CURRENT_FUNCTION` from the final executable for security reasons.