Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::experi...unction_name(3) C++ Standard Libarystd::experi...unction_name(3)

NAME
       std::experimental::source_location::function_name   -   std::experimen-
       tal::source_location::function_name

Synopsis
	  constexpr const char*	function_name()	const noexcept;	 (library fun-
       damentals TS v2)

	  Returns the name of the function associated with the position	repre-
       sented by this
	  object, if any.

Parameters
	  (none)

Return value
	  If this object represents a position in a body of  a	function,  re-
       turns an
	  implementation-defined  null-terminated byte string corresponding to
       the name	of the
	  function.

	  Otherwise, an	empty string is	returned.

Example
	  The following	example	shows how it is	possible to use	the
	  std::source_location::function_name()	to print a name	of a function,
       constructor,
	  destructor, or overloaded operator().

       // Run this 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() // <- name of the caller!
		<< 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);
	}

Possible output:
	foo()
	S()
	S(int)
	operator=(const	S&)
	operator=(S&&)
	~S()
	~S()

See also
	  line	    return the line number represented by this object
		    (public member function)
	  column    return the column number represented by this object
		    (public member function)
	  file_name return the file name represented by	this object
		    (public member function)

http://cppreference.com		  2022.07.31	 std::experi...unction_name(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::source_location::function_name&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help