难以理解c ++中的函数指针

Bir*_*bal 3 c++ function-pointers

我正在阅读Bjarne Stroustrup撰写的C++编程语言.它在某处使用using关键字来生成函数指针数据类型P1和P2,如下所示:

using P1 = int(?)(int?);

using P2 = void(?)(void);
Run Code Online (Sandbox Code Playgroud)

但是它使用using关键字来创建另一个函数指针数据类型:

using CFT = int(const void?, const void?);             -(1)
Run Code Online (Sandbox Code Playgroud)

然后它使用CFT声明一个函数指针并在一些ssort函数中传递它:

void ssort(void? base, siz e_t n, size_t sz, CFT cmp);
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果使用"using"创建函数指针数据类型,则不应该行 - (1)为:

using CFT=int(*)(const void*, const void*); 
Run Code Online (Sandbox Code Playgroud)

而不是它实际上是什么?

Lig*_*ica 5

在C和C++中,(*)这里是可选的.

是的,这很令人困惑.关于函数指针类型,这是一个奇怪的问题.

如果作者坚持使用两种可能的语法之一,那会更好.