Due some cyclic dependencies between component.h and configurationmanager.h if a file include only component.h (for example, an header declaring a subclass of Component) the compilation fails on template implementations inside configurationmanager.h.
Workaround is to include the configurationmanager.h and never include explicity component.h