Я хочу сохранить анонимную функцию в структуре, которая будет вызываться время от времени:
typedef void (*tCallBack)(); // Объявление типа для вызова функции при нажатии
struct tControl {
uint16_t x1, y1, x2, y2; // Координаты контрола
uint8_t autorepeat; // Разрешение автоповтора
tCallBack exec; // Функция, вызываемая при нажатии
};
tControl controls[100];
controls[0].x1 = 200;
controls[0].y1 = 150;
controls[0].x2 = 250;
controls[0].y2 = 200;
controls[0].autorepeat = 0;
controls[0].exec = []()->void{Iref += 0.1;};
Написано согласно Википедии. Но что-то не работает. Компилятор ругается на последнюю строчку (где как раз анонимная функция):
Error: Expected an expression in "main.cpp", Line: 254, Col: 25
Пробовал также вариант:
controls[0].exec = [](){Iref += 0.1};
С тем же результатом.
При этом следующий вариант - работает:
void foo(void){
Iref += 0.1;
}
controls[0].exec = &foo;
Есть нюанс с компилятором: это онлайн-компилятор MBED - ARM-овский инструмент для написания ПО для встраиваемых платформ на базе ARM. Т.е. что там за C - черт его знает. Судя по всем форумам - 11 версия, так что должна такие конструкции поддерживать. Но я все-таки думаю, что проблема в моих кривых руках, а не в компиляторе.
Поправьте меня пожалуйста в части синтаксиса, если конечно там есть ошибки.
Спасибо!
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вопрос в удалении HGDIOBJ результата возвращаемого функцией SelectObject()
Делаю лабораторную работуНужно создать программу, которая будет реализовывать со стороны сервера разные функции (создание документа, обновление...
В нескольких примерах на просторах сети можно найти следующие вещиДопустим имеем несколько определений:
Вокруг ведущего стоит N человек, которые пронумерованы по часовой стрелку числами от 1 до NВедущий, начиная с первого отсчитывает M человек...