Warn about singleton being a Reference

This commit is contained in:
Pedro J. Estébanez 2020-11-19 11:46:05 +01:00
parent a3a3b02bed
commit e1150bd912
2 changed files with 11 additions and 4 deletions

View file

@ -219,3 +219,13 @@ Engine *Engine::get_singleton() {
Engine::Engine() {
singleton = this;
}
Engine::Singleton::Singleton(const StringName &p_name, Object *p_ptr) :
name(p_name),
ptr(p_ptr) {
#ifdef DEBUG_ENABLED
if (Object::cast_to<Reference>(p_ptr)) {
ERR_PRINT("A class intended to be used as a singleton must *not* inherit from Reference.");
}
#endif
}

View file

@ -41,10 +41,7 @@ public:
struct Singleton {
StringName name;
Object *ptr;
Singleton(const StringName &p_name = StringName(), Object *p_ptr = nullptr) :
name(p_name),
ptr(p_ptr) {
}
Singleton(const StringName &p_name = StringName(), Object *p_ptr = nullptr);
};
private: