You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-12-04 17:04:49 +00:00
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).
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user