std::experimental:: source_location
From cppreference.net
<
cpp
|
experimental
|
Definido en el encabezado
<experimental/source_location>
|
||
|
struct
source_location
;
|
(biblioteca fundamentals TS v2) | |
La clase
source_location
representa cierta información sobre el código fuente, como nombres de archivo, números de línea y nombres de función. Anteriormente, las funciones que deseaban obtener esta información sobre el sitio de llamada (para propósitos de registro, pruebas o depuración) debían usar macros para que las macros predefinidas como
__LINE__
y
__FILE__
se expandieran en el contexto del llamador. La clase
source_location
proporciona una alternativa mejor.
Contenidos |
Funciones miembro
Creación |
|
construye un nuevo
source_location
con valores definidos por la implementación
(función miembro pública) |
|
|
[static]
|
construye un nuevo
source_location
(función miembro estática pública) |
Otras funciones miembro especiales |
|
|
(destructor)
(implicitly declared)
|
destruye un
source_location
(función miembro pública) |
|
operator=
(implicitly declared)
|
operadores de asignación de copia/movimiento declarados implícitamente
(función miembro pública) |
Acceso a campos |
|
|
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) |
|
|
devuelve el nombre de la función representada por este objeto, si existe
(función miembro pública) |
|
Ejemplo
Ejecutar este código
#include <experimental/source_location> #include <iostream> #include <string_view> void log(const std::string_view message, const std::experimental::source_location location = std::experimental::source_location::current()) { std::cout << "info:" << location.file_name() << ':' << location.line() << ' ' << message << '\n'; } int main() { log("Hello world!"); }
Salida posible:
info:main.cpp:15 Hello world!