命名空间
变体
操作

std::experimental::source_location

来自 cppreference.cn
< cpp‎ | 实验性
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!