std::source_location::line

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 std::uint_least32_t line() const noexcept;
(since C++20)

Returns the line number represented by this object.

Parameters

(none)

Return value

The line number represented by this object.

An implementation is encouraged to return 0 when the line number is unknown.

Example

#include <iostream>
#include <string_view>
#include <source_location>
 
inline void cur_line(
    const std::string_view message = "",
    const std::source_location& location = std::source_location::current())
{
    std::cout
        << location.line() // <- the line # of a call site
        << ") "
        << message; 
}
 
int main()
{
    cur_line("++\n");
    cur_line(); std::cout << "Hello,\n";
    cur_line(); std::cout << "C++20!\n";
    cur_line("--\n");
}

Output:

17) ++
18) Hello, 
19) C++20! 
20) --

See also

return the column number represented by this object
(public member function)
return the file name represented by this object
(public member function)
return the name of the function represented by this object, if any
(public member function)
gets the line number that lexically relates the evaluation represented by the stacktrace_entry
(public member function of std::stacktrace_entry)
Filename and line information