Skimming durch die TensorFlow C++ API ich auf einer seltsame Funktion Unterschrift gestolpert:Was ist der Zweck eines unformatierten Zeigers auf den Funktionsparameter unique_ptr in C++?
Status Create(
const FileSystemStoragePathSourceConfig & config,
std::unique_ptr<FileSystemStoragePathSource> *result
)
Ich verstehe nicht, warum result
ein roher Zeiger auf unique_ptr
ist. Denn normalerweise, wenn wir unique_ptr
als Funktionsparameter übergeben wollen, tun wir es entweder durch Verschieben (&&
) oder durch Referenz &
oder durch Wert. Ich habe den Anwendungsfall eines rohen Zeigers auf unique_ptr
vorher nicht gesehen.
Wilde Vermutung, weil die Person (en), die es geschrieben hat, out-Parameter lieber als By-Adresse und nicht als Referenz verwalten, wo die aufrufende Syntax leicht falsch interpretiert werden kann. – WhozCraig
Außerdem kann der Ausgangsparameter optional sein. Etwas, das man nur mit Zeigern vor 'std :: optional 'machen kann. – StoryTeller
"Nach Wert &" Sie möchten das neu formulieren. Durch Ref ist nicht nach Wert. – curiousguy