Ich habe den folgenden Code, der gut funktioniert. Ich versuche die Syntax zu verstehen. Die Return-Anweisung hat std::plus<double>()
. Das Double hier hat den Rückgabewert-Datentyp. Die Funktionsdefinition hat jedoch den Rückgabetyp std::function<double(double, double)>
, der zwei Doppelparameter angibt. Wie verhalten sich diese beiden zueinander?C++ Routine-Rückgabe-Funktion
#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;
}