component class' attached_to constructor parameter is mandatory for this and all subclasses. It's unnecessary boilerplate because the entity::add_component could also set this field automatically.
[x] remove the parameter from component class' constructor and all of it's subclasses.
[x] component should friend entity class.
[x] entity::add_component method should assign this value to component::attached_to field.
[x] entity.h includes must be moved to implementation files.
component class' attached_to constructor parameter is mandatory for this and all subclasses. It's unnecessary boilerplate because the entity::add_component could also set this field automatically.