29#ifndef _GLIBCXX_SRCLOC
30#define _GLIBCXX_SRCLOC 1
32#if __cplusplus > 201703L && __has_builtin(__builtin_source_location)
37_GLIBCXX_BEGIN_NAMESPACE_VERSION
39#define __cpp_lib_source_location 201907L
42 struct source_location
45 using uint_least32_t = __UINT_LEAST32_TYPE__;
48 const char* _M_file_name;
49 const char* _M_function_name;
53 using __builtin_ret_type =
decltype(__builtin_source_location());
58 static consteval source_location
59 current(__builtin_ret_type __p = __builtin_source_location()) noexcept
61 source_location __ret;
62 __ret._M_impl =
static_cast <const __impl*
>(__p);
66 constexpr source_location() noexcept { }
69 constexpr uint_least32_t
71 {
return _M_impl ? _M_impl->_M_line : 0u; }
73 constexpr uint_least32_t
74 column() const noexcept
75 {
return _M_impl ? _M_impl->_M_column : 0u; }
78 file_name() const noexcept
79 {
return _M_impl ? _M_impl->_M_file_name :
""; }
82 function_name() const noexcept
83 {
return _M_impl ? _M_impl->_M_function_name :
""; }
86 const __impl* _M_impl =
nullptr;
89_GLIBCXX_END_NAMESPACE_VERSION
ISO C++ entities toplevel namespace is std.