namespace Ndk
{
	template<typename ComponentType>
	class Component : public BaseComponent
	{
		public:
			Component();
			virtual ~Component();

			std::unique_ptr<BaseComponent> Clone() const override;

			static ComponentIndex RegisterComponent(ComponentId id);

			template<unsigned int N>
			static ComponentIndex RegisterComponent(const char (&name)[N]);
	};
}

#include <NDK/Component.inl>

#endif // NDK_COMPONENT_HPP
