Почему std::plus<int> не является вызываемым?
#include <iostream>
#include <type_traits>
#include <functional>
int main() {
std::cout << std::is_invocable_r_v<int, std::plus<int>> << '\n';
}
std::is_invocable_r_v<> проверяет результат вызова с конкретными типами параметров, а не впринципе возможность вызова. Поэтому правильный вызов для функционального объекта с 2 параметрами будет std::is_invocable_r_v<int, std::plus<int>, int, int>.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей