#include<iostream>#include<optional>#include<stdio.h>usingnamespace std;voidswap(){
optional<int> a =optional<int>(10);
optional<int> b =optional<int>(11);
a.swap(b);printf("a has value: %d\n", a.value());printf("b has value: %d\n", b.value());}voidvalue_or(){
optional<int> a =optional<int>();printf("a.value_or : %d\n", a.value_or(100));
a =11;printf("a.value_or : %d\n", a.value_or(100));}voidreset(){
optional<int> a =optional<int>(10);if(a){printf("a has value: %d\n", a.value());}else{printf("a has no value\n");}
a.reset();if(a){printf("a has value: %d\n", a.value());}else{printf("a has no value\n");}}intmain(){swap();value_or();reset();return0;}
#include<iostream>#include<sstream>#include<cassert>#include<array>#include<limits>#include<set>#include<unordered_map>#include<functional>#include<memory>#include<ostream>#include<string>#include<vector>#include<map>#include<optional>#include<chrono>#include<mutex>#include<thread>#include<utility>#include<typeinfo>#include<queue>usingnamespace std;
std::optional<int>baby(){int a =2;if(a >1)return{};elsereturn3;}intmain(){auto s =baby();if(s.has_value()){
cout <<"I have baby"<< endl;
cout << s.value()<< endl;}else{
cout <<"I have no baby"<< endl;}return0;}