std::source_location::file_name

From cppreference.com
 
 
Utilities library
General utilities
Date and time
Function objects
Formatting library (C++20)
(C++11)
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)   
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Elementary string conversions
(C++17)
(C++17)
 
 
constexpr const char* file_name() const noexcept;
(since C++20)

Returns the name of the current source file represented by this object, represented as a null-terminated byte string.

Parameters

(none)

Return value

The name of the current source file represented by this object, represented as a null-terminated byte string.

Example

#include <iostream>
#include <source_location>
 
void print_this_file_name(
    std::source_location location = std::source_location::current())
{
    // Name of file that contains the call site of this function.
    std::cout << "File: " << location.file_name() << '\n';
}
 
int main()
{
#line 1 "cppreference.cpp"
    print_this_file_name();
}

Output:

File: cppreference.cpp

See also

return the line number represented by this object
(public member function)
return the column number represented by this object
(public member function)
return the name of the function represented by this object, if any
(public member function)
gets the name of the source file that lexically contains the expression or statement whose evaluation is represented by the stacktrace_entry
(public member function of std::stacktrace_entry)
Filename and line information