Как создать специализированный шаблон класса с пакетом в качестве параметра шаблона? - PullRequest
0 голосов
/ 23 марта 2019

Я взял приведенный ниже пример из Шаблон с множественной упаковкой в ​​качестве входного параметра .

#include <iostream>
#include <tuple>

// A template to hold a parameter pack.                                                                                                                                                                                                                                                                                                                                                       
template < typename... >
struct Typelist {};

// Declaration of a template with multiple parameter pack.                                                                                                                                                                                                                                                                                                                                    
template< typename TypeListOne                                                                                                                                                                                                                                                                                                                                                                
        , typename TypeListTwo                                                                                                                                                                                                                                                                                                                                                                
        >                                                                                                                                                                                                                                                                                                                                                                                     
struct SomeStruct;

// Specialization of template with multiple parameter packs                                                                                                                                                                                                                                                                                                                                   
template< typename... TypesOne
        , typename... TypesTwo
        >
struct SomeStruct< Typelist < TypesOne... >
                 , Typelist < TypesTwo... >
                 >
{
    // Can use TypesOne... and TypesTwo... how ever                                                                                                                                                                                                                                                                                                                                           
    // you want here. For example:                                                                                                                                                                                                                                                                                                                                                            
    typedef std::tuple< TypesOne... > TupleTypeOne;
    typedef std::tuple< TypesTwo... > TupleTypeTwo;
};

Я хотел бы знать, как создать экземпляр объекта SomeStruct.

1 Ответ

1 голос
/ 23 марта 2019

Например:

SomeStruct <Typelist <char, int, char>,
            Typelist <int, double>> var;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...