Does the C++ standard somehow specify what can a T be in the following declaration:
template <typename T>
I mean, from practical terms of view this can be any particular type, which allows the template to compile (when the corresponding substitution happens).
But what about the strict definition?
It is the responsibility of the programmer to ensure that the data type being used for
Tis compatible and has all the necessary operations that will performed onTdefined. As far as the C++ standard is concerned any data type can be used in place ofTthere.