int(*foo(int(*)(int,int),int*))(int*, int(*)(int*))可以分为2个部分
auto foo(int(*)(int,int),int*) ->int(*)(int*, int(*)(int*))
这样看就很明了,foo是参数是(一个参数为2个int,返回值为int指针的)函数指针和int指针的函数,
返回值是一个指向(返回值是int)(参数为int指针和一个指向参数为(int指针)(返回值为int)的函数指针)的函数指针
虽然不知道这种函数能有什么实际意义,但是还是应该认识它的