Betrachten Sie diese Funktion:Kopieren boost :: program_options :: parsed_options
po::parsed_options ParserClass::parseOptions(int argc, char *argv[]) {
return po::command_line_parser(argc, argv)
.options(desc)
.positional(pos)
.run();
}
desc
und pos
Membervariablen von ParserClass
sind.
Ist diese Funktion sicher oder gibt sie ein parsed_options
Objekt zurück, das Zeiger auf freigegebenen freien Speicher hat, weil der zugewiesene Speicher des ursprünglichen Objekts freigegeben wird, wenn die Funktion zurückgibt?
Wie können Sie die Semantik kennen? Ich habe versucht, den Quellcode zu lesen, um es herauszufinden, aber es war ein wenig kryptisch für mich. Die Dokumentation scheint nicht zu sagen.
Wenn die Funktion nicht sicher ist, wie könnte sie behoben werden? Sollten Sie die Klasse erweitern und einen Verschiebevorgang definieren?