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