C++20中引入了std::source_location,用來描述函數調用的上下文信息。
其主要的成員函數如下:
line()
:獲取行號。column()
:獲取列號。file_name()
:獲取文件名。function_name()
:獲取函數域名。
#include <iostream>
#include <string_view>
#include <source_location>void log(std::string_view message, const std::source_location& location = std::source_location::current())
{std::cout << location.file_name() << ':'<< location.line() << ' '<< "func:"<<location.function_name() << ' '<< "log:"<<message << '\n';
}int main()
{log("Hello world!");
}
運行程序輸出:
./file.cpp:16 func:int main() log:Hello world!