std::experimental::source_location:: function_name
From cppreference.net
<
cpp
|
experimental
|
source location
|
constexpr
const
char
*
function_name
(
)
const
noexcept
;
|
(spécifications techniques des bibliothèques fondamentales v2) | |
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
L'exemple suivant montre comment il est possible d'utiliser
std::source_location::function_name()
pour afficher le nom d'une fonction, d'un constructeur, d'un destructeur, ou d'un
operator()
surchargé.
Exécuter ce code
#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() // <- nom de l'appelant ! << 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); }
Sortie possible :
foo() S() S(int) operator=(const S&) operator=(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) |
|
|
Documentation C++
pour
Informations sur le nom de fichier et la ligne
|
|