std::experimental:: source_location
From cppreference.net
<
cpp
|
experimental
|
struct
source_location
;
|
(库基础 TS v2) | |
source_location
类用于表示源代码的特定信息,例如文件名、行号和函数名。以往需要获取调用处此类信息(用于日志记录、测试或调试目的)的函数必须使用宏,以便像
__LINE__
和
__FILE__
这样的预定义宏能在调用方上下文中展开。
source_location
类提供了更优的替代方案。
目录 |
成员函数
创建 |
|
构造具有实现定义值的
source_location
(公开成员函数) |
|
|
[static]
|
构造新的
source_location
(公开静态成员函数) |
其他特殊成员函数 |
|
|
(destructor)
(implicitly declared)
|
析构
source_location
(公开成员函数) |
|
operator=
(implicitly declared)
|
隐式声明的复制/移动赋值运算符
(公开成员函数) |
字段访问 |
|
|
返回此对象表示的行号
(公开成员函数) |
|
|
返回此对象表示的列号
(公开成员函数) |
|
|
返回此对象表示的文件名
(公开成员函数) |
|
|
返回此对象表示的函数名称(如果存在)
(公开成员函数) |
|
示例
运行此代码
#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!"); }
可能的输出:
info:main.cpp:15 Hello world!