170 похожих чатов

Есть тип KtaInfo. Данный тип может быть получен или с

помощью конструктора или с помощью метода другого класса. Я хочу по чекбоксу вызывать нужный вариант. Придумал решение в виде лямд. Есть 2 ламбды:

auto transformMsg = [&CalcMath =m_1_5kta, &msg](void) { return KtaInfo(msg); };
transformMsg = [&CalcMath =m_1_5kta, &msg](void){return CalcMath.RecalcUm(msg);};

При отжатии чекбокса вариант получения меняется. Но во втором случае приравнивание не работает. Пишет:

------.cpp:108:38: error: no viable overloaded '='------.cpp:107:46: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from '(lambda...' to 'const (lambda ... for 1st argument
Почему я не могу приравнять лямбды? У них ведь все одинакого кроме тела

7 ответов

9 просмотров

у них нет оператора = и нет оператора копирования

посмотри что там вместо auto

idk
копирования нет, он deleted)

void test(int a) { auto l = [&a](){}; auto l2 = l; } Компилятор не согласен: https://godbolt.org/z/Y8v9ach3a

void, кстати, там необязателен в плюсах

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

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
32
Hello. Could you please help me with finding all coordinates within a radius using a spatial index, given that I have a table with coordinates? SET @lng = 37.57925; SET @lat ...
Rinchin G
7
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Всех приветствую. Направьте меня в нужное русло. Постепенно переписываю проект с delphi на lazarus. Приложение - обычный windows/linux клиент для бд firebird. Тут все хорошо. ...
Mishutka
8
Привет всем, подскажите, есть сайт на ево 1.4, надо сделать его мультиязычным, структура документов одинаковой останется, чисто тексты разные, свои тв для каждого языка, поддо...
Oleg
7
@rouse_79 https://github.com/AlexanderBagel/FWZip/blob/8c6882a31ffaa9a23e66e22eaa5b1f7ebfcad43c/zlib_external.pas#L393 Почему Си-шная функция memset, параметр отвечающий за з...
notme
8
{"fieldValue":[ {"title":"Alkmaar","coords":"52.62689992095562, 4.771862510168792","address":"Edisonweg 1","zip":"1821 BN","city":"Alkmaar","description":"ma-vr: 07:00-17:00"...
Marc Hoogstrate
4
А что ты ставишь? Релиз или текущую версию?
Aliaksandr Sadouski
9
Карта сайта