Siccome ho molto tempo libero, ho deciso di scrivere una versione personale di smart pointer.
corrisponda un
purtroppo, però, quanto da me scritto non è sufficientemente intelligente e gli elementi tolti all'array sono fuori dal mio controllo. Cosa scrivereste voi? |
Segui questa domanda
Via email:Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui
Via RSS:Basi di markdown
- *corsivo* o __corsivo__
- **grassetto** o __grassetto__
- collegamento:[testo](http://url.com/ "titolo")
- immagine?
- elenco numerato: 1. Foo 2. Bar
- per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
- è supportato anche semplice HTML
Tag:
domanda posta: 28 Sep '14, 20:03
domanda visualizzata: 1,203 volte
ultimo aggiornamento: 29 Sep '14, 19:30
@airordl: ho formattato un po' meglio la tua domanda, controlla che non abbia fatto errori. Inoltre ti chiedo di entrare un po' più in dettagli, dato che io, che conosco un pochetto di C++, ho capito abbastanza poco, figuriamoci chi non lo conosce proprio :)
la funzione 'sub' è in overload tra una 'sub' che riceve un numero arbitrario di argomenti maggiore di '1' (la seconda) e una che ne riceve uno soltanto.
chiamandola, in un qualche main, con n>1 argomenti, viene chiamata (in modo necessariamente ricorsivo) la seconda, finchè degli argomenti non ne rimane uno solo.
a quel punto viene chiamata la prima.
ex:
template < typename A > void funza (A a ) { clog<<a<<"@"; }
template < typename A, typename ... B > void funza (A a, B ...b) { clog<<":"<<a; funza(b...); }
int main () {
funza('a','b',3455,"ciao",true);
clog<<endl; }
da come output
:a:b:3455:ciao1@
chiaro, no?
ogni volta il nuovo argomento diventa 'a' e il resto viene impacchettato in modo provvisorio in 'b...', detto 'pack'
con il primo faccio apparire una scritta su terminale, con quello che resta (il pack) richiamo funza... etc.
quando ne resta uno solo (true) viene chiamata l'altra funza e succede quel che succede
il problema è che con questa impostazione vengono cancellati anche gli array successivi al secondo (da eliminare)...
altre idee?