std::experimental::source_location
来自 cppreference.cn
struct source_location; |
(库基础 TS v2) | |
source_location
类表示关于源代码的某些信息,例如文件名、行号和函数名。此前,需要获取关于调用站点的此信息(用于日志记录、测试或调试目的)的函数必须使用宏,以便在调用者的上下文中扩展预定义宏(如 __LINE__ 和 __FILE__)。source_location
类提供了一个更好的替代方案。
目录 |
[编辑] 成员函数
创建 | |
使用实现定义的值构造新的 source_location (public 成员函数) | |
[静态] |
构造新的 source_location (public 静态成员函数) |
其他特殊成员函数 | |
(析构函数) (隐式声明) |
销毁 source_location (public 成员函数) |
operator= (隐式声明) |
隐式声明的复制/移动赋值运算符 (public 成员函数) |
字段访问 | |
返回此对象表示的行号 (public 成员函数) | |
返回此对象表示的列号 (public 成员函数) | |
返回此对象表示的文件名 (public 成员函数) | |
返回此对象表示的函数名(如果有) (public 成员函数) |
[编辑] 示例
运行此代码
#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!