Exploring optional return values.

This commit is contained in:
Zed A. Shaw 2024-05-04 21:06:10 -04:00
parent c736387063
commit 67cbd430bf

View file

@ -1,8 +1,31 @@
#include <iostream>
#include <optional>
#include <string>
using namespace std;
optional<string> create(bool b)
{
if(b) {
return "Godzilla";
} else {
return {};
}
}
auto create2(bool b)
{
return b ? optional<string>{"Godzilla"} : nullopt;
}
int main()
{
cout << "create(false) returned "
<< create(false).value_or("empty") << "\n";
if(auto str = create2(true)) {
cout << "create2(true) returned " << *str << " with size " << str->size() << "\n";
}
return 0;
}