by Anonymous » 16 Mar 2025, 15:25
Ist es möglich, ein Objekt vom Typ unerwarteter für ein std :: erwartet ?
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);
}
Gibt es eine Möglichkeit, mit ?
Code: Select all
const auto result = do_logic();
if(result.has_value()) {
// success case
}
else {
// error case
}
Ist es möglich, ein Objekt vom Typ unerwarteter für ein std :: erwartet ?
Hier ist ein einfaches Beispiel.[code]#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]
Gibt es eine Möglichkeit, mit ?[code]const auto result = do_logic();
if(result.has_value()) {
// success case
}
else {
// error case
}
[/code]