std::experimental::source_location
From cppreference.com
< cpp | experimental
Defined in header
<experimental/source_location>
|
||
struct source_location; |
(library fundamentals TS v2) | |
The source_location
__LINE__ and __FILE__ are expanded in the context of the caller. The source_location
Member functions
Creation | |
constructs a new source_location with implementation-defined values (public member function) |
|
[static]
|
constructs a new source_location (public static member function) |
Other special member functions | |
(destructor) (implicitly declared) |
destructs a source_location (public member function) |
operator= (implicitly declared) |
implicitly declared copy/move assignment operators (public member function) |
Field access | |
return the line number represented by this object (public member function) |
|
return the column number represented by this object (public member function) |
|
return the file name represented by this object (public member function) |
|
return the name of the function represented by this object, if 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!