You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2026-01-06 19:41:11 +00:00
Add move semantics to Ref.
This commit is contained in:
@@ -127,6 +127,15 @@ public:
|
||||
ref(p_from);
|
||||
}
|
||||
|
||||
void operator=(Ref &&p_from) {
|
||||
if (reference == p_from.reference) {
|
||||
return;
|
||||
}
|
||||
unref();
|
||||
reference = p_from.reference;
|
||||
p_from.reference = nullptr;
|
||||
}
|
||||
|
||||
template <typename T_Other>
|
||||
void operator=(const Ref<T_Other> &p_from) {
|
||||
ref_pointer<false>(Object::cast_to<T>(p_from.ptr()));
|
||||
@@ -159,6 +168,11 @@ public:
|
||||
this->operator=(p_from);
|
||||
}
|
||||
|
||||
Ref(Ref &&p_from) {
|
||||
reference = p_from.reference;
|
||||
p_from.reference = nullptr;
|
||||
}
|
||||
|
||||
template <typename T_Other>
|
||||
Ref(const Ref<T_Other> &p_from) {
|
||||
this->operator=(p_from);
|
||||
|
||||
Reference in New Issue
Block a user