diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2021-11-30 15:19:26 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2021-11-30 16:26:29 +0100 |
commit | 7da392bcc52366740394322728464e724cf20cdf (patch) | |
tree | 5c3579dc3743a244b4a5e25ae02220b8790742c6 /core/string/ustring.cpp | |
parent | 2d118bd8b881fe9658e70eb8dc4fa7a6efac41a3 (diff) | |
download | redot-engine-7da392bcc52366740394322728464e724cf20cdf.tar.gz |
Don't return reference on copy assignment operators
We prefer to prevent using chained assignment (`T a = b = c = T();`) as this
can lead to confusing code and subtle bugs.
According to https://en.wikipedia.org/wiki/Assignment_operator_(C%2B%2B), C++
allows any arbitrary return type, so this is standard compliant.
This could be re-assessed if/when we have an actual need for a behavior more
akin to that of the C++ STL, for now this PR simply changes a handful of
cases which were inconsistent with the rest of the codebase (`void` return
type was already the most common case prior to this commit).
Diffstat (limited to 'core/string/ustring.cpp')
-rw-r--r-- | core/string/ustring.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/core/string/ustring.cpp b/core/string/ustring.cpp index 320aae2ba4..8d1f610578 100644 --- a/core/string/ustring.cpp +++ b/core/string/ustring.cpp @@ -130,9 +130,8 @@ Char16String &Char16String::operator+=(char16_t p_char) { return *this; } -Char16String &Char16String::operator=(const char16_t *p_cstr) { +void Char16String::operator=(const char16_t *p_cstr) { copy_from(p_cstr); - return *this; } const char16_t *Char16String::get_data() const { @@ -186,9 +185,8 @@ CharString &CharString::operator+=(char p_char) { return *this; } -CharString &CharString::operator=(const char *p_cstr) { +void CharString::operator=(const char *p_cstr) { copy_from(p_cstr); - return *this; } const char *CharString::get_data() const { |