Si consideri il seguente codice:È possibile creare un alias del modello?
template< template< typename ... > class ... Ts >
struct unite
{
template< typename ... T >
struct type
: Ts< T ... > ...
{ };
};
// This does not work as ::type does not name a type, but a template:
// template< template< typename ... > class ... Ts >
// using unite_t = typename unite< Ts ... >::type;
template<typename> struct debug_none {};
template<typename> struct debug_cout {};
template< typename ... > struct raise_demangled {};
template< typename ... > struct raise_specialized {};
template< typename, typename = int > struct match_default {};
template< template< typename ... > class Control >
void f()
{}
int main()
{
f< unite< debug_none, raise_demangled, match_default >::type >();
// Is there any way to create something like unite_t which works like this:
// f< unite_t< debug_none, raise_demangled, match_default > >();
}
Domanda: Esiste un modo per creare una sorta di "modello alias" simile a un tipo alias? (vedere unite_t
nell'esempio sopra)
Quindi, domanda: ho ricordato come ho scritto che ho fatto questa domanda esatta prima. Dovrei chiudere i miei http://stackoverflow.com/questions/17356487/equivalent-of-using-aliases-for-templates come duplicati di questo? O vice versa? :) – Yakk
@Yakk Anche se la tua domanda è abbastanza simile e nella stessa area, non penso che sia davvero un duplicato, dato che hai cercato di sbarazzarti della parola chiave 'template' in un posto diverso. Se esiste una soluzione per uno * sarebbe *, * potrebbe * risolvere anche l'altro problema - ma sembra che non ci sia una soluzione. –