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

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

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

16 ответов

19 просмотров

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

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 Автор вопроса

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта