diff options
Diffstat (limited to 'src/components/rpc_base/include/rpc_base/rpc_base_inl.h')
-rw-r--r-- | src/components/rpc_base/include/rpc_base/rpc_base_inl.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/components/rpc_base/include/rpc_base/rpc_base_inl.h b/src/components/rpc_base/include/rpc_base/rpc_base_inl.h index 2241a4707b..eb374188c3 100644 --- a/src/components/rpc_base/include/rpc_base/rpc_base_inl.h +++ b/src/components/rpc_base/include/rpc_base/rpc_base_inl.h @@ -187,7 +187,10 @@ Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator=(IntType new_va template<typename T, T minval, T maxval> Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator=(const Integer& new_val) { this->value_ = new_val.value_; - this->value_state_= range_.Includes(new_val.value_) ? kValid : kInvalid; + if (new_val.is_initialized()) { + this->value_state_= range_.Includes(new_val.value_) ? kValid : kInvalid; + } + return *this; } @@ -266,7 +269,7 @@ String<minlen, maxlen>::String(const char* value) } template<size_t minlen, size_t maxlen> -bool String<minlen, maxlen>::operator<(String new_val) { +bool String<minlen, maxlen>::operator<(const String& new_val) const { return value_ < new_val.value_; } @@ -279,13 +282,16 @@ String<minlen, maxlen>& String<minlen, maxlen>::operator=(const std::string& new template<size_t minlen, size_t maxlen> String<minlen, maxlen>& String<minlen, maxlen>::operator=(const String& new_val) { + if(*this == new_val) { + return *this; + } value_.assign(new_val.value_); value_state_ = new_val.value_state_; return *this; } template<size_t minlen, size_t maxlen> -bool String<minlen, maxlen>::operator==(const String& rhs) { +bool String<minlen, maxlen>::operator==(const String& rhs) const { return value_ == rhs.value_; } @@ -310,7 +316,7 @@ Enum<T>::Enum(EnumType value) } template<typename T> -Enum<T>& Enum<T>::operator=(EnumType new_val) { +Enum<T>& Enum<T>::operator=(const EnumType& new_val) { value_ = new_val; value_state_ = IsValidEnum(value_) ? kValid : kInvalid; return *this; |