Namespaces
Variants

std::meta::source_location_of

来自 zh.cppreference.net
< cpp | meta
 
 
 
反射库
 
反射类型和查询
反射查询
反射布局查询
类型属性
类型属性查询
 
定义于头文件 <meta>
consteval std::source_location source_location_of( std::meta::info r );
(自 C++26 起)

在可能的情况下,返回 r 所表示的源代码位置。

正式定义:

  • 如果 r 表示一个(标量)值、一个非类或枚举类型、全局命名空间,或一个 数据成员描述,则返回一个值初始化的 std::source_location。
  • 否则,返回由实现定义的值。

如果 r 表示一个实体,且其定义可从求值上下文达到,那么鼓励实现返回与该定义对应的值。

参数

r - 一个反射值

返回值

r 所表示的源代码位置,如上所述。

示例

#include <meta>
#include <iostream>
#include <source_location>

int main()
{
    std::cout << '#' << source_location_of(^^main).line()
              << ' ' << source_location_of(^^main).function_name()
              << '\n';
}

可能的输出:

#5 int main()

另见

[static]
构造一个新的 source_location对应调用点的位置
(std::source_location 的公开静态成员函数)