Explicit move to null the return pointer

This commit is contained in:
Paul Ferrand 2020-03-30 20:32:27 +02:00
parent 629a2ae8a8
commit a1cacea8fb

View file

@ -27,8 +27,18 @@ public:
SpanHolder() {}
SpanHolder(const SpanHolder<T>&) = delete;
SpanHolder<T>& operator=(const SpanHolder<T>&) = delete;
SpanHolder(SpanHolder<T>&&) = delete;
SpanHolder<T>& operator=(SpanHolder<T>&&) = delete;
SpanHolder(SpanHolder<T>&& other)
{
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)
: value(std::forward<T>(value)), available(available) {}
T& operator*() { return value; }