diff options
Diffstat (limited to 'src/3rdparty/angle/src/common/Optional.h')
-rw-r--r-- | src/3rdparty/angle/src/common/Optional.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/3rdparty/angle/src/common/Optional.h b/src/3rdparty/angle/src/common/Optional.h index 9665b7ddf6..256f38f329 100644 --- a/src/3rdparty/angle/src/common/Optional.h +++ b/src/3rdparty/angle/src/common/Optional.h @@ -35,11 +35,27 @@ struct Optional return *this; } - static Optional None() + Optional &operator=(const T &value) { - return Optional(); + mValue = value; + mValid = true; + return *this; + } + + Optional &operator=(T &&value) + { + mValue = std::move(value); + mValid = true; + return *this; } + void reset() + { + mValid = false; + } + + static Optional Invalid() { return Optional(); } + bool valid() const { return mValid; } const T &value() const { return mValue; } |