(NDK) Fixed copy/move constructor/operator

Former-commit-id: e51e7cab650aa7c17141f7401fbcbdf3159aec2b
This commit is contained in:
Lynix 2015-04-12 21:03:19 +02:00
parent f137a75267
commit 2ab0defa48
5 changed files with 23 additions and 2 deletions

View File

@ -22,12 +22,17 @@ namespace Ndk
using Factory = std::function<BaseComponent*()>;
BaseComponent(ComponentIndex componentIndex);
BaseComponent(const BaseComponent&) = default;
BaseComponent(BaseComponent&&) noexcept = default;
virtual ~BaseComponent();
virtual BaseComponent* Clone() const = 0;
ComponentIndex GetIndex() const;
BaseComponent& operator=(const BaseComponent&) = default;
BaseComponent& operator=(BaseComponent&&) noexcept = default;
protected:
ComponentIndex m_componentIndex;

View File

@ -23,7 +23,9 @@ namespace Ndk
public:
BaseSystem(SystemIndex systemId);
virtual ~BaseSystem();
BaseSystem(const BaseSystem&);
BaseSystem(BaseSystem&&) noexcept = default;
~BaseSystem();
virtual BaseSystem* Clone() const = 0;
@ -35,6 +37,9 @@ namespace Ndk
bool HasEntity(const Entity* entity) const;
BaseSystem& operator=(const BaseSystem&) = delete;
BaseSystem& operator=(BaseSystem&&) noexcept = default;
protected:
template<typename ComponentType> void Excludes();
template<typename ComponentType1, typename ComponentType2, typename... Rest> void Excludes();

View File

@ -12,6 +12,13 @@ namespace Ndk
{
}
inline BaseSystem::BaseSystem(const BaseSystem& system) :
m_excludedComponents(system.m_excludedComponents),
m_requiredComponents(system.m_requiredComponents),
m_systemIndex(system.m_systemIndex)
{
}
inline const std::vector<EntityHandle>& BaseSystem::GetEntities() const
{
return m_entities;

View File

@ -16,10 +16,15 @@ namespace Ndk
{
public:
System();
System(const System&) = default;
System(System&&) = default;
virtual ~System();
BaseSystem* Clone() const override;
System& operator=(const System&) = delete;
System& operator=(System&&) = default;
static SystemIndex RegisterSystem();
};
}

View File

@ -30,5 +30,4 @@ namespace Ndk
{
return GetNextIndex();
}
}