Fix optional::operator=
This commit is contained in:
parent
9e770cc040
commit
464b88a23b
@ -85,15 +85,19 @@ namespace stmp {
|
|||||||
void operator=(const optional &o) {
|
void operator=(const optional &o) {
|
||||||
if (has_some && o.has_some) {
|
if (has_some && o.has_some) {
|
||||||
**this = *o;
|
**this = *o;
|
||||||
} else {
|
} else if (o.has_some) {
|
||||||
reset(*o);
|
reset(*o);
|
||||||
|
} else {
|
||||||
|
reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void operator=(optional &&o) {
|
void operator=(optional &&o) {
|
||||||
if (has_some && o.has_some) {
|
if (has_some && o.has_some) {
|
||||||
**this = *std::move(o);
|
**this = *std::move(o);
|
||||||
} else {
|
} else if (o.has_some) {
|
||||||
reset(*std::move(o));
|
reset(*std::move(o));
|
||||||
|
} else {
|
||||||
|
reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user