C++ Alias Templates

In C++11, a type alias is a name for another already declared type, and an alias template is a name for another already declared template. Both of these types of aliases are introduced with a new using syntax.

This is an example of a type alias using using:

using byte = unsigned char;

, instead of former:

typedef unsigned char byte;

This is an example of a type alias using using:

template <class T>
class custom_allocator { /* ... */};

template <typename T>
using vec_t = std::vector<T, custom_allocator<T>>;

vec_t<int> vi;
vec_t<std::string> vs;

It is important to take note of the following things: