home | help
std::experi...ce_location(3)   C++ Standard Libary  std::experi...ce_location(3)

NAME
     std::experimental::source_location - std::experimental::source_location

Synopsis
	Defined in header <experimental/source_location>
	struct	source_location;			   (library fundamentals
     TS v2)

	The source_location  class  represents	certain  information  about  the
     source code, such
	as  file  names, line numbers, and function names. Previously, functions
     that desire
	to obtain this information about the call site (for logging, testing, or
     debugging
	purposes) must use macros so that predefined macros  like  __LINE__  and
     __FILE__ are
	expanded  in  the  context of the caller. The source_location class pro-
     vides a better
	alternative.

Member functions
	      Creation
			      constructs a new source_location with  implementa-
     tion-defined
	constructor	      values
			      (public member function)
	current 	      constructs a new source_location
	[static]	      (public static member function)
	      Other special member functions
	destructor	      destructs a source_location
	(implicitly declared) (public member function)
	operator=	      implicitly declared copy/move assignment operators
	(implicitly declared) (public member function)
	      Field access
	line		      return the line number represented by this object
			      (public member function)
	column		       return  the column number represented by this ob-
     ject
			      (public member function)
	file_name	      return the file name represented by this object
			      (public member function)
			      return the name of  the  function  represented  by
     this object, if
	function_name	      any
			      (public member function)

Example
     // Run this code

      #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!");
      }

Possible output:
      info:main.cpp:15 Hello world!

http://cppreference.com 	   2024.06.10	    std::experi...ce_location(3)

home | help