Un costruttore di modelli (come il seguente) sovrascrive il costruttore di copie implicite?Un costruttore con modello sostituisce il costruttore implicito di copia in C++?
template <class T>
struct Foo
{
T data;
// ...
template <class U>
Foo(const Foo<U> &other) : data((T)doSomethingWith(other.data)) {}
// ...
};
Se è così, ha ancora la precedenza, se other
viene passato per valore piuttosto che di riferimento costante?
In tal caso, esiste un modo per aggirare questo senza definire esplicitamente un costruttore di copie?
L'idea è giusta, ma quello che hai scritto è sbagliato. Intendi "Un costruttore di copie non ..."? Questo è falso. Intendi "Un costruttore di copia basato su modelli non ..."? Non vi è nulla di simile. –
@ BenVoigt Anche se penso che fosse chiaro prima, ho cercato di renderlo più preciso, anche se penso che ora sia più confuso. – David