Почему std::plus не является вызываемым?

95
17 февраля 2022, 13:00

Почему std::plus<int> не является вызываемым?

#include <iostream>
#include <type_traits>
#include <functional>

int main() {
    std::cout << std::is_invocable_r_v<int, std::plus<int>> << '\n';
}
Answer 1

std::is_invocable_r_v<> проверяет результат вызова с конкретными типами параметров, а не впринципе возможность вызова. Поэтому правильный вызов для функционального объекта с 2 параметрами будет std::is_invocable_r_v<int, std::plus<int>, int, int>.

READ ALSO
Подскажите исходник инсталятора на C/C++

Подскажите исходник инсталятора на C/C++

подскажите хороший инсталятор с открытым кодом на C\C++ буду очень благодарен!

94
Узнать тип параметра функции

Узнать тип параметра функции

У меня есть шаблонный параметр, принимающий вызываемый типКак узнать тип i-ого параметра этого функционального объекта/функции?

128
C++, инициализация constexpr полей

C++, инициализация constexpr полей

Подскажите, пожалуйста, возможно ли инициализировать constexpr член не в хедере, а в файле реализации?

105
C++, constexpr и инициализатор синглтона

C++, constexpr и инициализатор синглтона

Рассмотрим следующий код:

70