table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::experimental::source_location(3) | C++ Standard Libary | std::experimental::source_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 provides a
    better
  
   alternative.
Member functions¶
 Creation
  
   constructs a new source_location with implementation-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 object
  
   (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!
| 2024.06.10 | http://cppreference.com |