72 Stimmen

Warum hat unique_ptr den Deleter als Typparameter und shared_ptr nicht?

Le site std::unique_ptr Vorlage hat zwei Parameter: den Typ des Zeigers und den Typ des Löschers. Der zweite Parameter hat einen Standardwert, so dass Sie in der Regel einfach etwas schreiben wie std::unique_ptr<int> .

Le site std::shared_ptr Vorlage hat allerdings nur einen Parameter: den Typ des Pointees. Sie können aber auch einen benutzerdefinierten Deleter mit dieser Vorlage verwenden, auch wenn der Deleter-Typ nicht in der Klassenvorlage enthalten ist. Die übliche Implementierung verwendet dazu Techniken zur Typlöschung.

Gibt es einen Grund, warum diese Idee nicht auch für die std::unique_ptr ?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X