I have an attribute vector that can hold different types:
class base_attribute_vector; // no template args template class raw_attribute_ve
You cannot do this. At best, you need to support a limited number of types, and switch between them using an if statement that can be evaluated at compile time.
if