Hier ist ein einfaches Beispiel.
Code: Select all
#include
[[nodiscard]]
std::expected do_logic() {
return std::unexpected();
}
< /code>
Dies ist nicht kompiliert, zumindest nicht mit GCC-14. < /p>
error: no matching function for call to ‘std::unexpected::unexpected()’
< /code>
Ich bin überrascht, dass dieser Code nicht kompiliert wird, da das Folgende kompiliert: < /p>
#include
[[nodiscard]]
std::expected do_logic() {
return std::unexpected(-1);
}
Code: Select all
const auto result = do_logic();
if(result.has_value()) {
// success case
}
else {
// error case
}