<source_location>是C++20中新增加的头文件,此头文件是utility库的一部分。
主要内容为类std::source_location:表示有关源代码的某些信息,例如文件名(__FILE__)、行号(__LINE__)和函数名(__func__)。
以下为测试代码:
namespace {
void log(const std::source_location location = std::source_location::current())
{
std::clog << "file: "
<< location.file_name() << "("
<< location.line() << ":"
<< location.column() << "); function name: "
<< location.function_name()
<< std::endl;
}
void func()
{
log();
}
} // namespace
int test_source_location()
{
log();
func();
return 0;
}
执行结果如下图所示: