Quando compilato, questo:Troppi simboli costruttore
template <typename T>
struct ConstArray {
///MEMBERS
T* data_;
T* end_;
///Constructors
ConstArray(T* data, T* end) : data_(data), end_(end) {}
};
template struct ConstArray<const char>;
mi dà (nm -C *.o
):
0000000000000000 W ConstArray<char const>::ConstArray(char const*, char const*)
0000000000000000 W ConstArray<char const>::ConstArray(char const*, char const*)
0000000000000000 n ConstArray<char const>::ConstArray(char const*, char const*)
mi sembra di ottenere tre simboli (2 W + 1 n (non so cosa questo è)) per ogni costruttore che definisco. Le funzioni sembrano darmi solo una come previsto. Qualcuno potrebbe spiegare perché questo è o mi indica una spiegazione?
sembra rilevante: http://stackoverflow.com/questions/6921295/dual-emission-of-constructor-symbols – Michael
YEPP, appena trovato https://www.google.com/search?q=multiple+constructors + generato e c'è stata un'altra grande risposta da qualche parte, non so proprio quali parole di ricerca usare. –
@ Michael Grazie mille. Questa domanda è un duplicato fino al simbolo n non spiegato. – PSkocik