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

Programme in C++. Entwicklerforum
Anonymous
 Wie erstelle ich STD :: ANTWORT , um Erfolg oder Ausnahme ohne zusätzliche Daten zu signalisieren?

Post by Anonymous »

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
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post