Можно ли «сохранить» пакет параметров шаблона без его расширения?

Я экспериментировал с вариативными шаблонами C ++ 0x, когда наткнулся на эту проблему:

template < typename ...Args >
struct identities
{
    typedef Args type; //compile error: "parameter packs not expanded with '...'
};

//The following code just shows an example of potential use, but has no relation
//with what I am actually trying to achieve.
template < typename T >
struct convert_in_tuple
{
    typedef std::tuple< typename T::type... > type;
};

typedef convert_in_tuple< identities< int, float > >::type int_float_tuple;

GCC 4.5.0 выдает ошибку, когда я пытаюсь ввести шаблон пакет параметров.

В принципе, я хотел бы "сохранить" пакет параметров в typedef, не распаковывая его. Возможно ли? Если нет, то есть ли причина, по которой это запрещено?

71
задан Luc Touraille 2 December 2011 в 09:38
поделиться