std::experimental::source_location:: function_name
From cppreference.net
<
cpp
|
experimental
|
source location
|
constexpr
const
char
*
function_name
(
)
const
noexcept
;
|
(biblioteca fundamentals TS v2) | |
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
El siguiente ejemplo muestra cómo es posible utilizar
std::source_location::function_name()
para imprimir el nombre de una función, constructor, destructor, u operador sobrecargado
operator()
.
Ejecutar este código
#include <experimental/source_location> #include <iostream> #include <string_view> inline void function_name( const std::string_view signature = "()", const std::experimental::source_location& location = std::experimental::source_location::current()) { std::cout << location.function_name() // <- nombre del llamador! << signature << '\n'; } void foo() { function_name(); } struct S { S() { function_name(); } S(int) { function_name("(int)"); } S& operator=(S const&) { function_name("(const S&)"); return *this; } S& operator=(S&&) { function_name("(S&&)"); return *this; } ~S() { function_name(); } }; int main() { foo(); S p; S q{42}; p = q; p = std::move(q); }
Salida posible:
foo() S() S(int) operator=(const S&) operator=(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) |
|
|
C++ documentation
para
Información de nombre de archivo y línea
|
|