Alias

From C++11, using statement can be used similar to typedef to define type synonyms.

    using counter = long;

Function Pointers

Alias make function pointers more readable compared to typedef.

# Function Pointer alias
using functPtrAlias = int(*)(int, int);

# Function Pointer typedef
typedef int(*functPtrTypedef)(int, int);

int ProcessNos(functPtrAlias foo, int a, int b) { return foo(a, b); }

static int Add(int a, int b) { return (a+b); }
static int Multiply(int a, int b) { return (a*b); }

int main()
{
    int a=10, b=20;
    cout << ProcessNos(&Add, a, b) << endl;
    cout << ProcessNos(&Multiply, a, b) << endl;
}

References:

Updated: