mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +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:
parent
2d118bd8b8
commit
7da392bcc5
28 changed files with 93 additions and 90 deletions
|
|
@ -55,7 +55,10 @@ struct CountedItem {
|
|||
count++;
|
||||
}
|
||||
|
||||
CountedItem &operator=(const CountedItem &p_other) = default;
|
||||
void operator=(const CountedItem &p_other) {
|
||||
id = p_other.id;
|
||||
count++;
|
||||
}
|
||||
|
||||
~CountedItem() {
|
||||
CRASH_COND(destroyed);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue