GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::source_location::current(3) C++ Standard Libary std::source_location::current(3)

std::source_location::current - std::source_location::current


static consteval source_location current() noexcept; (since C++20)


Constructs a new source_location object corresponding to the location of the call
site.


(none)


If current() is invoked directly (via a function call that names current()), it
returns a source_location object with implementation-defined values representing the
location of the call. The values should be affected by the #line preprocessor
directive in the same manner as the predefined macros __LINE__ and __FILE__.


If current() is used in a default member initializer, the return value corresponds
to the location of the constructor definition or aggregate initialization that
initializes the data member.


If current() is used in a default argument, the return value corresponds to the
location of the call to current() at the call site.


If current() is invoked in any other manner, the return value is unspecified.


std::source_location::current typically requires compiler's built-in implementation.

// Run this code


#include <source_location>
#include <iostream>


struct src_rec {
std::source_location srcl = std::source_location::current();
int dummy = 0;


src_rec(std::source_location loc = std::source_location::current()) :
srcl(loc) // values of member refer to the location of the calling function
{}
src_rec(int i) : // values of member refer to this location
dummy(i)
{}
src_rec(double) // values of member refer to this location
{}
};


std::source_location src_clone(std::source_location a = std::source_location::current())
{
return a;
}


std::source_location src_make()
{
std::source_location b = std::source_location::current();
return b;
}


int main()
{
src_rec srec0;
src_rec srec1(0);
src_rec srec2(0.0);
auto s0 = std::source_location::current();
auto s1 = src_clone(s0);
auto s2 = src_clone();
auto s3 = src_make();


std::cout
<< srec0.srcl.line() << ' ' << srec0.srcl.function_name() << '\n'
<< srec1.srcl.line() << ' ' << srec1.srcl.function_name() << '\n'
<< srec2.srcl.line() << ' ' << srec2.srcl.function_name() << '\n'
<< s0.line() << ' ' << s0.function_name() << '\n'
<< s1.line() << ' ' << s1.function_name() << '\n'
<< s2.line() << ' ' << s2.function_name() << '\n'
<< s3.line() << ' ' << s3.function_name() << '\n';
}


31 int main()
12 src_rec::src_rec(int)
15 src_rec::src_rec(double)
34 int main()
34 int main()
36 int main()
25 std::source_location src_make()


constructor constructs a new source_location with implementation-defined values
(public member function)
current obtains the current stacktrace or its given part
[static] (C++23) (public static member function of std::basic_stacktrace<Allocator>)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.