我想要一个函数指针的std::array。我能找到的唯一类似的例子是旧式的原始数组,或者是std::function的std::array。
这种语法是否可行?
声明一个包含2个函数的数组,接受一个整数参数并返回一个 `bool`...
...如何使用 `std::array`?
这种语法是否可行?
bool (*arr[2])(int) = { foo, foo2 };
声明一个包含2个函数的数组,接受一个整数参数并返回一个 `bool`...
...如何使用 `std::array`?
std::array<std::function<bool(int)>,2ul>
。这样做还可以让你使用lambda表达式/函数作为参数。(函数指针也可以工作) - Pepijn Kramerstd::function()
会增加虚函数调用的开销。 - Evgstd::array<bool(*)(int), 2>
这种形式不易阅读。更易读的方式是使用类型别名(可以是using Func = bool(*)(int)
或者typedef bool (*Func)(int)
),然后使用std::array<Func, 2>
。 - Peter