invalid conversion from shared interface pointer to templated implementation