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
;
|
(depuis C++20) | |
Retourne le nom de la fonction associée à la position représentée par cet objet, s'il y en a une.
Table des matières |
Paramètres
(aucun)
Valeur de retour
Si cet objet représente une position dans le corps d'une fonction, retourne une chaîne d'octets terminée par un caractère nul définie par l'implémentation correspondant au nom de la fonction.
Sinon, une chaîne vide est retournée.
Exemple
std::source_location::function_name
peut aider à obtenir les noms des fonctions (y compris les fonctions spéciales) ainsi que leurs signatures.
Exécuter ce code
#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(); }(); }
Sortie possible :
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()
Voir aussi
|
retourne le numéro de ligne représenté par cet objet
(fonction membre publique) |
|
|
retourne le numéro de colonne représenté par cet objet
(fonction membre publique) |
|
|
retourne le nom de fichier représenté par cet objet
(fonction membre publique) |