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

Typedef int (*addIntFunction) (const int a, const int b); addIntFunction f

= [](const int a, const int b) -> int {
return a + b;
}
А можно ткнуть носом что тут не так? Вроде совпадают типы

16 ответов

17 просмотров

Здесь всё в порядке. Не бери в голову

Miroslav-Belov Автор вопроса

А ругается error: expected expression before '[' token это вот про квадратные скобки и error: expected identifier before 'int' это вот про -> int. Это уже надо гуглить как лямбдами пользоваться?

Miroslav Belov
А ругается error: expected expression before '[' t...

У тебя какой стандарт в компиляторе?

Miroslav-Belov Автор вопроса
Liber Azerate
У тебя какой стандарт в компиляторе?

А как это выяснить? Сделал gcc -dM -E. Вот что вышло (то, что интересно вроде) #define __GNUC__ 9 #define __STDC__ 1 #define __STDC_VERSION__ 201710L Вот __STDC_VERSION__ и есть?

Miroslav Belov
А как это выяснить? Сделал gcc -dM -E. Вот что выш...

Ну вообще, достаточно посмотреть версию компилятора и поддерживает ли она нужный стандарт. А так, если ты при компиляции пишешь g++ -std=c++11 file.cpp, то пример выше работать должен

d7d1cd
У него Си

Он пытается лямбды запустить, значит С++

Miroslav-Belov Автор вопроса
Liber Azerate
Ну вообще, достаточно посмотреть версию компилятор...

Наверное дело было в том, что скармливал это Си. Запустил g++ ругается на error: cannot convert '<lambda(int, int)>' to 'int (**)(int, int)' in initialization

Miroslav Belov
Наверное дело было в том, что скармливал это Си. З...

Где ты двойной указатель сделать умудрился... Покажи

Ну вот типы то как раз тут не очень совпадают. Лямбда имеет, вообще говоря, неспецифицированный тип По идее компилятор должен скастить её к указателю на функцию, но тот же msvc так вроде не может Можно явно попробовать сказать: +[] (...) { ... } Но это из разряда эзотерики

Miroslav-Belov Автор вопроса
Liber Azerate
Он пытается лямбды запустить, значит С++

Я погугли немного. Вроде они и в Си есть, нет?

Miroslav-Belov Автор вопроса
Liber Azerate
Где ты двойной указатель сделать умудрился... Пока...

Да, умудрился. Вижу теперь) typedef int (*addIntFunction) (const int a, const int b); addIntFunction* f = [](const int a, const int b) -> int { return a + b; }

Miroslav-Belov Автор вопроса

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта