|
@@ -307,14 +307,14 @@ public:
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
ResultVal& operator=(const ResultVal& o) {
|
|
ResultVal& operator=(const ResultVal& o) {
|
|
|
- if (*this) {
|
|
|
|
|
- if (o) {
|
|
|
|
|
|
|
+ if (!empty()) {
|
|
|
|
|
+ if (!o.empty()) {
|
|
|
*GetPointer() = *o.GetPointer();
|
|
*GetPointer() = *o.GetPointer();
|
|
|
} else {
|
|
} else {
|
|
|
GetPointer()->~T();
|
|
GetPointer()->~T();
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
- if (o) {
|
|
|
|
|
|
|
+ if (!o.empty()) {
|
|
|
new (&storage) T(*o.GetPointer());
|
|
new (&storage) T(*o.GetPointer());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|