int main() { Optional<string> a("ok"); Optional<string> b("ok"); Optional<string> c("aa"); c = a; Optional<MyStruct> op; op.Emplace(1,2); Optional<MyStruct> t; if (op) t = *op; op.Emplace(3,4); t = *op; }