#include <initializer_list>
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
std::function<void(int)> sample_function()
{
return
[](int x) -> void
{
if (x > 5)
std::cout << x;
};
}
int main()
{
std::vector<int> numbers{ 1, 2, 3, 4, 5, 10, 15, 20, 25, 35, 45, 50 };
std::for_each(numbers.begin(), numbers.end(), sample_function);
}
я пытаюсь передать sample_function() для for_each, но я сталкиваюсь с этой ошибкойпрохождения станд :: функции в качестве параметра for_each
Ошибка C2197 «станд :: функция»: слишком много аргументов для вызова
Этот код не передает 'std :: function' в' for_each'. Он передает 'sample_function', которая является функцией, которая не принимает аргументов и возвращает объект типа' std :: function '. Сообщение об ошибке правильное: 'sample_function' не принимает никаких аргументов, поэтому не может быть вызван с элементами диапазона. –