Added CPPCOMPONENTS_CONSTRUCT_TEMPLATE and changed CPPCOMPONENT_INTERFACE_EXTRAS to be able to be used with templates