cpp / intermediate
Snippet
Funktionale Ergebnispuffer für Nullpointer-freie Schnittstellen
Die Klassenvorlage std::optional verwaltet einen optionalen enthaltenen Wert, der vorhanden sein kann oder nicht. Es ist eine hervorragende Alternative zur Rückgabe von magischen Werten (wie -1) oder Nullpointern, was zu klareren und sichereren Kontrollflüssen führt.
snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <optional>#include <string>std::optional<int> try_parse(const std::string& s) {try {return std::stoi(s);} catch (...) {return std::nullopt;}}void usage() {auto result = try_parse("123");if (result.has_value()) {int value = *result;}}
Erklärung
1
std::optional<int> try_parse(...)
Gibt einen Container zurück, der einen Integer enthalten kann oder auch nicht.
2
return std::nullopt;
Gibt explizit an, dass kein Wert zurückgegeben wird.