std::source_location:: function_name
From cppreference.net
<
cpp
|
utility
|
source location
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::source_location
| Member functions | ||||
| Creation | ||||
| Field access | ||||
|
source_location::function_name
|
|
constexpr
const
char
*
function_name
(
)
const
noexcept
;
|
(desde C++20) | |
Devuelve el nombre de la función asociada con la posición representada por este objeto, si existe alguna.
Contenidos |
Parámetros
(ninguno)
Valor de retorno
Si este objeto representa una posición en el cuerpo de una función, devuelve una cadena de bytes terminada en nulo definida por la implementación que corresponde al nombre de la función.
De lo contrario, se devuelve una cadena vacía.
Ejemplo
std::source_location::function_name
puede ayudar a obtener los nombres de las funciones (incluyendo las funciones especiales) junto con sus firmas.
Ejecutar este código
#include <cstdio> #include <utility> #include <source_location> inline void print_function_name( const std::source_location& location = std::source_location::current()) { std::puts(location.function_name()); // prints the name of the caller } void foo(double &&) { print_function_name(); } namespace bar { void baz() { print_function_name(); } } template <typename T> auto pub(T) { print_function_name(); return 42; } struct S { S() { print_function_name(); } S(int) { print_function_name(); } ~S() { print_function_name(); } S& operator=(S const&) { print_function_name(); return *this; } S& operator=(S&&) { print_function_name(); return *this; } }; int main(int, char const* const[]) { print_function_name(); foo(3.14); bar::baz(); pub(0xFULL); S p; S q{42}; p = q; p = std::move(q); [] { print_function_name(); }(); }
Salida posible:
int main(int, const char* const*) void foo(double&&) void bar::baz() auto pub(T) [with T = long long unsigned int] S::S() S::S(int) S& S::operator=(const S&) S& S::operator=(S&&) main(int, const char* const*)::<lambda()> S::~S() S::~S()
Véase también
|
devuelve el número de línea representado por este objeto
(función miembro pública) |
|
|
devuelve el número de columna representado por este objeto
(función miembro pública) |
|
|
devuelve el nombre de archivo representado por este objeto
(función miembro pública) |