Получить тип первого элемента структурированного типаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Получить тип первого элемента структурированного типа

Сообщение Anonymous »

Я хочу получить тип первого элемента любых видов структурированных типов.

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 

template < typename T>
void Print()
{
std::cout 
void Funny( const T& t )
{
using ELEMENT_TYPE = decltype( GetFirst(*(std::declval().begin())) );
Print< ELEMENT_TYPE> ();
}

std::vector> s1{ {1, 2.9} };
struct T2 { std::string s; bool b; };
std::array s2{ "Hallo", true};

int main()
{
Funny( s1 );
Funny( s2 );
}
< /code>
, который приводит к: < /p>
void Print() [with T = int]
void Print() [with T = std::__cxx11::basic_string]
Код работает, как и ожидалось.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... tured-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»