The warning R1480 says: "An Attribute should always be typed by a primitive type"
Why is this so?
In this particular case, it is one of the template parameters for the template class to which it belongs. A template parameter can also be a class in C++, but it is not possible to designate a template type as "primitive" without knowing what the concrete type will be.