Вопросы с тегом «lambda»

22
Отличие поведения изменяемого захвата лямбда-функции от ссылки на глобальную переменную

Я обнаружил, что результаты в разных компиляторах различны, если я использую лямбду для захвата ссылки на глобальную переменную с изменяемым ключевым словом, а затем изменяю значение в лямбда-функции. #include <stdio.h> #include <functional> int n = 100; std::function<int()> f() {...

20
Как лямбда-макрос создает лямбду?

Я нашел этот кусок кода на GitHub, но не совсем понял: #define lambda(ret_type, _body) ({ ret_type _ _body _; }) Затем: int (*max)(int, int) = lambda(int, (int x, int y) { return x > y ? x : y; }); int max_value = max(1, 2); // max_value is 2 Что делают подчеркивания внутри #defineи как он...

18
Значения лямбда-замыкания могут быть переданы как ссылочные параметры rvalue.

Я обнаружил, что lvalueлямбда-замыкания всегда можно передать в качестве rvalueпараметров функции. Смотрите следующую простую демонстрацию. #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1:...

14
Перегрузка лямбда-функции

Как перегрузить простую локальную лямбда-функцию? SSE оригинальной задачи: #include <iostream> #include <map> void read() { static std::string line; std::getline(std::cin, line); auto translate = [](int idx) { constexpr static int table[8]{ 7,6,5,4,3,2,1,0 }; return table[idx]; }; auto...

12
Стандартно ли гарантировано, что лямбда без захвата будет пустой?

Я ищу способ идентифицировать пустые (без захвата) лямбды из других лямбд в функции шаблона. В настоящее время я использую C ++ 17, но мне тоже интересно узнать ответы на C ++ 20. Мой код выглядит так: template<typename T> auto func(T lambda) { // The aguments of the lambdas are unknown if...

11
Вызов лямбда неоднозначен, несмотря на явное указание типа возврата

Перегруженная функция должна принимать оба функтора, учитывая, что тип лямбды можно разрешить (можно преобразовать в std::function(пожалуйста, исправьте меня, если я ошибаюсь). Вопрос в том, почему ниже приведена ошибка компиляции, несмотря на то, что лямбда-тип явно определен? ( [&]() ->...

11
Ссылка на метод и обобщение в Java-8

Я столкнулся с проблемой со ссылкой на метод в сочетании с общими типами. У нас есть код, где нам нужно вызвать перегруженный метод, но он завершается ошибкой: Не удается разрешить значение m1 () Я упростил свою проблему, чтобы было ясно, где проблема. Сбой следующего кода: public class Test { void...

11
Выбор сигнатуры метода для лямбда-выражения с несколькими совпадающими типами целей

Я отвечал на вопрос и столкнулся со сценарием, который я не могу объяснить. Рассмотрим этот код: interface ConsumerOne<T> { void accept(T a); } interface CustomIterable<T> extends Iterable<T> { void forEach(ConsumerOne<? super T> c); //overload } class A { private static...

10
Как найти самую последнюю дату по заданному значению карты в Java

У меня есть хэш-карта со значениями ниже, в значениях у меня дата в качестве строкового типа данных. Я хотел бы сравнить все даты, которые доступны на карте, и извлечь только одно значение ключа, которое имеет очень недавнюю дату. Я хотел бы сравнить со значениями, а не ключами. Я включил код ниже...

9
Генерация лямбда-кода на C ++ с помощью Init Capture на C ++ 14

Я пытаюсь понять / уточнить код кода, который генерируется, когда перехваты передаются лямбдам, особенно в обобщенных перехватах инициализации, добавленных в C ++ 14. Дайте следующие примеры кода, перечисленные ниже, это мое текущее понимание того, что сгенерирует компилятор. Случай 1: захват по...

9
Безсерверный: метод запуска и забывания при вызове не работает должным образом

У меня есть серверная лямбда- функция, в которой я хочу запустить (вызвать) метод и забыть о нем Я делаю это таким образом // myFunction1 const params = { FunctionName: "myLambdaPath-myFunction2", InvocationType: "Event", Payload: JSON.stringify(body), }; console.log('invoking lambda function2');...

9
Java Stream: фильтр с несколькими диапазонами

Я пытаюсь отфильтровать ресурс и исключить некоторые элементы на основе поля. Для исключения у меня есть набор (который содержит идентификатор, который должен быть исключен) и список (он содержит несколько диапазонов идентификаторов, которые необходимо исключить). Я написал приведенную ниже логику,...