using Declarations

You may use a using declarations to import names either from a namespace or from a base class in a derived class definition.

The using keyword introduces a name that is defined elsewhere into the declarative region where this using-declaration appears.

using Declarations to Define Types, Alias Templates and Function Types

First, instead of

typedef unsigned char uc;

you may just code:

using uc = unsigned char;

An alias template extends the power of templates, is explained elsewhere, and it enables writing powerful code like:

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

where template classcustom_allocator<> must have been defined.

Finally, you can use using to declare the type of functions or pointers to functions, as in

using fn = void(byte, double);
void func(byte b, double d) { /*...*/ }
fn* f = func;