Структурированное объявление связывания для класса, унаследованных от кортежейC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Структурированное объявление связывания для класса, унаследованных от кортежей

Сообщение Anonymous »

У меня есть класс, унаследованный от стандартного кортежа: < /p>

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

#include 
#include 
#include 
#include 
#include 
#include 

template< typename ... Args >
class Identifier: public std::tuple< Args... >
{
public:
Identifier( Args... args ) requires( sizeof...( Args ) != 0 ) : std::tuple< Args... >( std::move( args )... )
{}

Identifier( std::tuple< Args... > tuple ):std::tuple< Args... >( tuple )
{}

Identifier()
{}

Identifier(std::convertible_to auto&& identifier)
: std::tuple(std::forward(identifier)) {}
};

int main()
{
Identifier  id(L"id", 10);
auto& [ str_id, num_id ] = id;

std::tuple< std::wstring, int64_t > tuple_id(L"id", 10);
auto& [ str_t_id, num_t_id ] = tuple_id;

return 0;
}
< /code>
в строке < /p>
auto& [ str_id, num_id ] = item;
< /code>
Я получил тип ошибки Предоставлено < /p>
, но тот же код для переменной кортежей это OK < /p>
auto& [ str_t_id, num_t_id ] = tuple_id;
Что я должен сделать, чтобы поддержать структурированное привязку для идентификатора класса?

Подробнее здесь: https://stackoverflow.com/questions/794 ... from-tuple
Ответить

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

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

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

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

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