在下面的C++代码中是什么double (*) double
意思?它是什么样的返回类型?
auto get_fun(int arg) -> double (*)(double) // same as: double (*get_fun(int))(double)
{
switch (arg)
{
case 1: return std::fabs;
case 2: return std::sin;
default: return std::cos;
}
}
Run Code Online (Sandbox Code Playgroud)
double (*)(double)
它是一个函数的函数指针签名,它接受一个double
参数并返回double
.通常
X (*)(A, B, C) // any number of args
Run Code Online (Sandbox Code Playgroud)
是一个指向函数的指针,它接受类型的args (A, B, C)
并返回类型的值X
,例如
X my_func(A, B, C) {
return X(); // assuming this makes sense
}
Run Code Online (Sandbox Code Playgroud)
将是上面的签名.
所以在你的情况下get_fun
是一个返回函数指针的函数.