¿Un constructor con plantilla (como el siguiente) anula el constructor de copia implícito?¿Un constructor con plantilla reemplaza el constructor de copia implícita en C++?
template <class T>
struct Foo
{
T data;
// ...
template <class U>
Foo(const Foo<U> &other) : data((T)doSomethingWith(other.data)) {}
// ...
};
Si es así, ¿todavía anularla si other
se pasa por valor en lugar de referencia constante?
Si es así, ¿hay alguna forma de evitar esto sin definir explícitamente un constructor de copia?
La idea es correcta, pero lo que escribiste está mal. ¿Quieres decir "Un constructor de copia no ..."? Eso es falso ¿Quieres decir "Un constructor de copia con plantilla no ..."? No existe tal cosa. –
@BenVoigt Slthough Creo que estaba claro antes, traté de hacerlo más exacto, aunque ahora creo que es más confuso. – David