diff --git a/src/aliased_buffer.h b/src/aliased_buffer.h index 9611512ae19..58632164b1d 100644 --- a/src/aliased_buffer.h +++ b/src/aliased_buffer.h @@ -129,7 +129,7 @@ class AliasedBuffer { template inline Reference& operator=(const T& val) { - aliased_buffer_->SetValue(index_, val); + aliased_buffer_->SetValue(index_, static_cast(val)); return *this; } @@ -144,7 +144,7 @@ class AliasedBuffer { template inline Reference& operator+=(const T& val) { - const T current = aliased_buffer_->GetValue(index_); + const NativeT current = aliased_buffer_->GetValue(index_); aliased_buffer_->SetValue(index_, current + val); return *this; } @@ -155,7 +155,9 @@ class AliasedBuffer { template inline Reference& operator-=(const T& val) { - return this->operator+=(-val); + const NativeT current = aliased_buffer_->GetValue(index_); + aliased_buffer_->SetValue(index_, current - val); + return *this; } private: