0 Tage Serie
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.