mi piacerebbe costruire qualcosa di simile:"template" uno spazio dei nomi
File 1:
template<typename Vector>
namespace myNamespace {
class myClass1{ myClass1(Vector v) {...} }
}
File 2:
template<typename Vector>
namespace myNamespace {
class myClass2{ myClass2(Vector v) {...} }
}
Naturalmente questo non è possibile perché non si può namespace template. Invece potrei usare una struct invece di uno spazio dei nomi, ma poi non posso diffondere le funzioni dello spazio dei nomi su più file.
Esiste una soluzione per tale problema?
PS: So che potrei modellare le classi, ma poi dovrei specificare quale tipo di vettore voglio usare in qualsiasi momento creo una nuova classe.
Per quanto riguarda il tuo PS: come pensi che avere uno spazio dei nomi basato su modelli rimuova la necessità di specificare il tipo di vettore quando installi le classi? Avresti ancora bisogno di qualcosa come un (fittizio) 'usando namespace myNamespace;' –
stakx
Sono con stakx su questo. E qual'è il significato di "int" nel tuo codice? – sbi
Sì, ma si potrebbe fare qualcosa del genere: int function1() { utilizzando namespace myNamespace; myClass1 c1 = myClass1 (5); myClass2 c2 = myClass2 (2); } int function2() { utilizzando namespace myNamespace ; myClass1 c1 = myClass1 ('a'); myClass2 c2 = myClass2 ('b'); } Spiacente, che int è sbagliato, lo eliminerò. Come posso incollare il codice qui correttamente? –
Manuel