Überschreibt ein Konstruktor mit Vorlagen den Konstruktor für implizite Kopien in C ++?
Überschreibt ein Konstruktor mit Vorlagen (wie der folgende) den Konstruktor für implizite Kopien?
template <class T>
struct Foo
{
T data;
// ...
template <class U>
Foo(const Foo<U> &other) : data((T)doSomethingWith(other.data)) {}
// ...
};
Wenn ja, überschreibt es es trotzdem, wennother
wird eher nach Wert als nach konstanter Referenz übergeben?
Wenn ja, gibt es eine Möglichkeit, dies zu umgehen, ohne explizit einen Kopierkonstruktor zu definieren?