# std::source_location::file_name

< cpp‎ | utility‎ | source location

constexpr const char* file_name() const noexcept; |  | (C++20 起)

返回此对象所表示的当前源文件名，表示为空终止字节字符串。

### 参数

（无）

### 返回值

此对象所表示的当前源文件名，表示为空终止字节字符串。

### 示例

    #if __has_include(<source_location>)
    #include <source_location>
    using std::source_location;
    #elif __has_include(<experimental/source_location>)
    #include <experimental/source_location>
    using std::experimental::source_location;
    #else
    #error "<source_location> not found"
    #endif

    #include <iostream>

    inline void print_this_file_name(
        const source_location& location = source_location::current())
    {
        // 文件名含有此函数的调用点。
        std::cout << "File: " << location.file_name() << '\n';
    }

    auto main() -> int
    {
        print_this_file_name();
    }

可能的输出：

    File: main.cpp

### 参阅

line | 返回此对象所表示的行号 (公开成员函数)
column | 返回此对象所表示的列号 (公开成员函数)
function_name | 返回此对象表示的函数名，若它存在 (公开成员函数)
source_file (C++23) | 获取词法上含有求值为该 `stacktrace_entry` 所表示的表达式或语句的源文件名 (`std::stacktrace_entry` 的公开成员函数)