Я хотел бы использовать массив указателей на функции без указания типа указателя. Объявление это работает, но я не могу получить доступ к содержимому без передачи аргументов шаблона, что противоречит цели. Есть ли способ обойти это? Я использую C ++ 17.
std :: function работает в этом случае, но я бы хотел избежать его использования.
#include <functional>
bool f(int x);
bool g(int x);
static std::function<decltype(f)> fps[] {f, g};
template <typename T, typename... Args>
constexpr T (*fpsa[])(Args...) {f, g};
int main() {
fps[0](1); // OK
fpsa<bool,int>[0](1); // OK
fpsa[0](1); // error: use of variable template 'fpsa' requires template arguments
}