Desidero scrivere una classe modello InvTuple
che definisce type
come una tupla di argomenti di classe in ordine inverso. Così dovrebbe funzionare comeInverti argomenti di tupla
InvTuple<T1, T2, T3, ...>::type ---> tuple<..., T3, T2, T1>
ho definito in questo modo
template<class...T>
struct InvTuple;
template<class T1, class...T>
struct InvTuple < T1, T... >
{
template<class... U>
using doInvert = typename InvTuple<T...>::doInvert < U..., T1 > ;
// <--- unrecognizable template declaration/definition,
// syntax error : '<'
using type = doInvert<>;
};
template<>
struct InvTuple <>
{
template<class... U>
using doInvert = tuple<U...>;
using type = doInvert < > ;
};
Ma questo non viene compilato correttamente a causa dell'errore, come mostrato nel codice. Per favore aiutami a capire cosa c'è che non va.
Wow! Innanzitutto non mi sono nemmeno reso conto del perché l'inversione si verifica se "T1" viene inserito per primo. Ma funziona, grazie mille! –