命名空间
变体
操作

std::experimental::source_location

来自 cppreference.cn
 
 
实验性
技术规范
文件系统库 (filesystem TS)
库基础 (library fundamentals TS)
库基础 2 (library fundamentals TS v2)
库基础 3 (library fundamentals TS v3)
并行扩展 (parallelism TS)
并行扩展 2 (parallelism TS v2)
并发扩展 (concurrency TS)
并发扩展 2 (concurrency TS v2)
概念 (concepts TS)
范围 (ranges TS)
反射 (reflection TS)
数学特殊函数 (special functions TR)
实验性非 TS
模式匹配
线性代数
std::execution
契约
2D 图形
 
 
 
struct source_location;
(library fundamentals 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!