今天在看大作《Effective C++》的时候,耍了个小聪明,不然自己不会认真看书。我从最后往前面看,在看最后一章的时候,遇到一件很有意思的事情,就把它记录下来了。
通常,我们写一个函数,而形参中又有另一个函数时,声明如下:
void registerCallback(std::string foo(int bar));
我们可以省略形参函数中的参数名,因此可以简写成如下形式:
void registerCallback(std::string foo(int));
在《Effective C++》中提到,可以进一步省略参数,可简写成如下形式:
void registerCallback(std::string (int));
此函数中的参数“std::string (int)”实为一函数,原型为:std::string foo(int bar);
这种写法很少见,我还从来没见过,写此文章,以表纪念。