Wie kann ich das direkte Ergebnis eines Funktionsaufrufs zurückgeben, der std :: erwartet zurückgibt?C++

Programme in C++. Entwicklerforum
Anonymous
 Wie kann ich das direkte Ergebnis eines Funktionsaufrufs zurückgeben, der std :: erwartet zurückgibt?

Post by Anonymous »

Nehmen wir dieses kurze Beispiel: < /p>

Code: Select all

std::expected doN(int n)
{
switch (n)
{
case 1: return do1();
case 2: return do2();
// ...
}
}

std::expected do1()
{
if (error)
{
return std::unexpected({/* ... */});
}
return 23;
}
Wenn ich es so mache und auto result = don (1) ohne Fehler, dann result.value () Typ ist std :: erwartet und nicht int (ohne Erwähnung des Any_casts . Rufen Sie an: < /p>

Code: Select all

std::expected doN(int n)
{
switch (n)
{
case 1:
auto value = do1();
if (value.has_value()) {
return value.value();
}
return std::unexpected(value.error());
// ...
}
}
Der Typ Don (1) .Value () ist int .
Meine Frage lautet also: Wie kann ich das vereinfachen? Gibt es eine Möglichkeit, das Funktionsaufrufergebnis zurückzugeben?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post