Explicit move to null the return pointer
This commit is contained in:
parent
629a2ae8a8
commit
a1cacea8fb
1 changed files with 12 additions and 2 deletions
|
|
@ -27,8 +27,18 @@ public:
|
||||||
SpanHolder() {}
|
SpanHolder() {}
|
||||||
SpanHolder(const SpanHolder<T>&) = delete;
|
SpanHolder(const SpanHolder<T>&) = delete;
|
||||||
SpanHolder<T>& operator=(const SpanHolder<T>&) = delete;
|
SpanHolder<T>& operator=(const SpanHolder<T>&) = delete;
|
||||||
SpanHolder(SpanHolder<T>&&) = delete;
|
SpanHolder(SpanHolder<T>&& other)
|
||||||
SpanHolder<T>& operator=(SpanHolder<T>&&) = delete;
|
{
|
||||||
|
this->value = other.value;
|
||||||
|
this->available = other.available;
|
||||||
|
other.available = nullptr;
|
||||||
|
}
|
||||||
|
SpanHolder<T>& operator=(SpanHolder<T>&& other)
|
||||||
|
{
|
||||||
|
this->value = other.value;
|
||||||
|
this->available = other.available;
|
||||||
|
other.available = nullptr;
|
||||||
|
}
|
||||||
SpanHolder(T&& value, int* available)
|
SpanHolder(T&& value, int* available)
|
||||||
: value(std::forward<T>(value)), available(available) {}
|
: value(std::forward<T>(value)), available(available) {}
|
||||||
T& operator*() { return value; }
|
T& operator*() { return value; }
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue