Wie erstelle ich STD :: ANTWORT , um Erfolg oder Ausnahme ohne zusätzliche Daten zu signalisieren?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie erstelle ich STD :: ANTWORT , um Erfolg oder Ausnahme ohne zusätzliche Daten zu signalisieren?

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
}

Top