В этой конкретной ситуации (внутри шаблона класса) matrix
является сокращением для matrix<T>
.Когда вы целый день пишете множество шаблонов, пытаясь уместить все в 80 столбцов, стенография приветствуется.
Обратите внимание, что вы также можете сокращать аргументы метода:
template <typename T>
struct matrix
{
typedef matrix my_type;
matrix(); // constructor is abbreviated too
matrix& operator=(matrix);
};
// Method argument types can be abbreviated too
// but not result types.
template <typename T>
matrix<T>& matrix<T>::operator=(matrix m)
{
// ...
}