Sometimes we want a short name to capture a specific instantiation of a class template.
typedef Blob<string> StrBlob;
C++11 allows type aliases for a class template, such as pairs. See example 1:
template<typename T> using twin = pair<T, T>;
twin<string> authors;
We use twin as a synonym for pairs with the same type.
twin<int> win_loss;
twin<double> dimensions;
Here, win_loss is a pair<int, int> and dimensions a pair<double, double>
#include<iostream>
using namespace std;
template<typename T> using twin = pair<T, T>;
int main()
{
twin<string> musician("Billy", "Joel");
cout << musician.first << " ";
cout << musician.second << endl;
}