Как написать метод, который принимает лямбда-функцию в качестве аргумента, и использовать его?
Я пытаюсь использовать лямбда-функции и борюсь с ними.
Я хочу создать метод, который принимает лямбда-метод в качестве аргумента. Затем я хочу иметь возможность передавать различные лямбда-функции в этот метод, чтобы в разных ситуациях в зависимости от метода использовалась другая формула.
Несмотря на то, что я прочитал множество статей, мне до сих пор не удалось понять, возможно ли это и каким должен быть синтаксис для объявления и передачи лямбда-частей.
Теперь я действительно сыт по горло!
Что я уже пробовал:
В приведенном ниже коде "MyFunction" - это метод, который я хочу принять в качестве аргумента лямбда-метод.
Метод 'CallingFunction' вызывает 'Myfunction' дважды, каждый раз передавая другую формулу в качестве лямбда-метода, так что внутри Myfunction используется другая формула.
Я надеюсь, что вы можете понять синтаксис, который я использовал ниже, чтобы попытаться показать свое намерение.
void MyClass::CallingFunction(int x, double a) { if (x == 0) { double lambda_function1 (double i, double j, double k) { return i+j*k;}; MyFunction(a, x, lambda_function1); } else { double lambda_function2 (double i, double j, double k) { return i+j+k;}; MyFunction(a, x, lambda_function2); } } double MyClass::MyFunction(double a, lambda_function) { double b = 5.0; double c = 6.0; return lambda_function(a, b, c); }