cpp/utility/source location

The 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 and  are expanded in the context of the caller. The class provides a better alternative.

meets the, , and  requirements. Lvalue of meets the  requirement.

Additionally, the following conditions are :
 * , and
 * , and

It is intended that has a small size and can be copied efficiently.

It is unspecified whether the copy/move constructors and the copy/move assignment operators of are trivial and/or constexpr.