У меня есть следующий код, который отлично работает. Я пытаюсь понять синтаксис. Оператор возврата имеет std::plus<double>()
. Здесь у двойника есть тип данных возвращаемого значения. Но определение функции имеет возвращаемый тип как std::function<double(double, double)>
, который указывает два двойных параметра. Как эти два относятся друг к другу?Функция возврата в C++
#include <functional>
#include <iostream>
using namespace std;
std::function<double(double, double)> GetFunction()
{
return std::plus<double>();
}
int main()
{
auto operation = GetFunction();
int a = operation(1, 4);
std::cout << std::plus<>{}(1, 4) << '\n';
return 0;
}