Voglio sapere se è a tutto il possibile per avere il codice che ha il seguente comportamento:parametri di modello Template senza specificare il tipo interno
int main()
{
func<vector>(/*some arguments*/);
}
Cioè, voglio che l'utente sia in grado di specificare il contenitore senza specificare il tipo su cui opera.
Ad esempio, un codice (meta) (che non funziona con quanto sopra) che potremmo definire func
sarebbe come segue:
template<typename ContainerType>
int func(/*some parameters*/)
{
ContainerType<int> some_container;
/*
operate on some_container here
*/
return find_value(some_container);
}
Bene, hai già la risposta nel titolo della domanda ... –
@dasblinkenlight: Questo è eminentemente possibile. Hai bisogno di un parametro template template, esattamente come dice l'OP nella domanda. –
Si noti che mentre i parametri del template template esistono, raramente sono il modo giusto per parametrizzare le cose. Di solito è molto meglio parametrizzare sul tipo ed estrarre le caratteristiche dei tipi tramite tratti. –