Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //There are a ton of compile-errors when I leave out the forward declarations like:
- //syntax error :indentifier Component
- //xe::Component undeclared identifier
- //std::unique_ptr Component is not a valid template type argument for parameter '_Ty'
- //Entity.h
- #pragma once
- #include<memory>
- //class Component;
- namespace xe
- {
- class Entity
- {
- public :
- Entity(unsigned int);
- std::list<std::unique_ptr<Component>> m_components;
- void add_component(Component&);
- private :
- unsigned int m_id;
- };
- }
- //Entity.cpp
- #include "Entity.h"
- xe::Entity(unsigned int id)
- {
- m_id = id;
- }
- void xe::Entity::add_component(xe::Component& comp)
- {
- m_components.push_back(std::unique_ptr<Component>(&component));
- }
- //Component.h
- #pragma once
- #include "Entity.h"
- //class Entity;
- namespace xe
- {
- class Component
- {
- public :
- void set_parent(xe::Entity&);
- private :
- xe::Entity* m_parent;
- };
- }
- //Component.cpp
- #include "Component.h"
- xe::Component::set_parent(Entity& parent)
- {
- m_parent = &parent;
- }
- //main.cpp
- int main()
- {
- Entity entity(1);
- Component comp;
- entity.add_component(comp);
- comp.set_parent(entity);//This line causes the error
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement