typedef
здесь хорошо, но его современная замена using
лучше. using
использует более обычный синтаксис слева направо, и он также может быть шаблонным
template <typename T>
using vec_size_type = typename std::vector<T>::size_type;
vec_size_type<int> sz;
Альтернатива с typedef
неуклюжа:
template <typename T>
struct vec_size_type{
typedef typename std::vector<T>::size_type type;
};
vec_size_type<int>::type sz;