Vorlagenkopiekonstruktor

8

Hat Foo nach dem folgenden Code einen Kopierkonstruktor? Ist es sicher, Foo mit STL-Containern zu verwenden?

%Vor%     
FrozenHeart 11.09.2012, 16:44
quelle

3 Antworten

10

Der Standard besagt explizit, dass ein Kopierkonstruktor ein Konstruktor ohne Templaten ist, der eine Referenz auf ein möglicherweise konstant flüchtiges Objekt desselben Typs verwendet. Im obigen Code haben Sie einen -Konvertierung -Konstruktor, aber nicht -Kontext (dh er wird für alles verwendet, aber kopiert, wo der implizit deklarierte Konstruktor steht verwendet werden).

  

Hat Foo einen Kopierkonstruktor?

Ja, der implizit deklarierte / definierte Kopierkonstruktor.

  

Ist es sicher, Foo mit Standard-Bibliothekscontainern zu verwenden?

Mit der aktuellen Definition von Foo ist es das, aber im allgemeinen Fall hängt es davon ab, welche Mitglieder Foo hat und ob der implizit definierte Kopierkonstruktor diese korrekt verwaltet.

    
quelle
4

Nach dem Standard muss ein Copy-Konstruktor eine der folgenden Signaturen sein:

%Vor%

Da der Vorlagenkonstruktor in Ihrem Code nicht mit dem obigen Formular übereinstimmt, ist nicht copy -constructor.

    
Nawaz 11.09.2012 16:49
quelle
1

Foo hat einen vom Compiler generierten Kopierkonstruktor, der nicht durch den von Ihnen bereitgestellten Vorlagenkonvertierungskonstruktor ersetzt werden kann.

%Vor%     
juanchopanza 11.09.2012 16:48
quelle

Tags und Links