Namespaces
Variants

std::experimental::reflect:: get_source_line

From cppreference.net
Extensions for reflection
Concepts
Meta-object operations
Variable
FunctionParameter
Callable
Variable and Callable
Namespace and Callable
ParenthesizedExpression
FunctionCallExpression
FunctionalConversion
Variable and Function
Определено в заголовочном файле <experimental/reflect>
template < Object T >
struct get_source_line ;
(reflection TS)

Предоставляет константу-член value , равную предполагаемому номеру строки объявления сущности или typedef-name, отражённого через T .

Содержание

Шаблон вспомогательной переменной

template < class T >
constexpr auto get_source_line_v = get_source_line < T > :: value ;
(TS по рефлексии)

Унаследовано от std:: integral_constant

Константы-члены

value
[static]
предполагаемый номер строки объявления сущности или typedef-name, отражённого T
(public static member constant)

Функции-члены

operator std::uint_least32_t
преобразует объект в std:: uint_least32_t , возвращает value
(public member function)
operator()
(C++14)
возвращает value
(public member function)

Типы-члены

Тип Определение
value_type std:: uint_least32_t
type std:: integral_constant < std:: uint_least32_t , value >

Пример

Следующий код показывает номер строки исходного кода объекта или класса.

#include<experimental/reflect>
#include<iostream>
using refl = std::experimental::reflect;
float f;
struct P{};
int main()
{
    std::cout << refl::get_source_line_v<reflexpr(f)> << '\n';
    std::cout << refl::get_source_line_v<reflexpr(P)> << '\n';
}

Вывод:

6
7

Смотрите также

возвращает номер строки, представленный этим объектом
(публичная функция-член std::source_location )
получает номер строки, который лексически относится к вычислению, представленному stacktrace_entry
(публичная функция-член std::stacktrace_entry )