Why is this an issue?
Since C++11, type aliases can be declared via
using should be preferred as more readable
because you see the new name/alias first.
using can be templated, which makes it applicable to more situations than
Noncompliant code example
typedef void (*FunctionPointerType)(int);
using FunctionPointerType = void (*)(int);