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
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());
59 current(__builtin_ret_type __p = __builtin_source_location())
noexcept
62 __ret._M_impl =
static_cast <const __impl*
>(__p);
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.
A class that describes a location in source code.