C'è un modo per ottenere un tipo di modello ricorsivo? Ho un contenitore per il quale voglio specificare una strategia di archiviazione sottostante. Il modello interno deve tuttavia utilizzare il tipo del modello esterno, quindi provoca un loop nella definizione del tipo, che non è possibile specificare.Un tipo di modello ricorsivo per un inoltro container/typename
A proposito di quello che voglio:
template<typename C>
struct inner {
C * object[16];
};
template<typename T, typename Inner>
struct container {
T value;
Inner<container> holder;
};
C++ 11 soluzioni vanno bene (anche se sono ancora in gcc 4.6.3).
C'è qualcosa chiamato "modello di modello curiosamente ricorsivo" (CRTP)? Forse aiuterà, non è sicuro ... http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern – Jimbo
Quali sono i nuovi comportamenti che questo tipo di dati ricorsivo avrà che lo differenziano da un elenco collegato? – abiessu
@abiessu, il mio uso corrente è in realtà per un albero radix. Ogni nodo ha un indice di come arrivare al nodo successivo, e 'inner' è ciò che specifica la strategia per quell'indice. Cioè, il modello permette di dire come sono gestiti i bambini, al contrario di un fisso rosso-nero, hash o altra strategia. –