Комментарии 8
А чем std::function не угодил? Вместе с std::bind они творят чудеса.
В рамках оффтопа: негоже printf и puts в плюсовом коде писать, да и char* там особо не место.
typedef std::function<void (char *)> Callback;
Callback MyCallback = [](char *s) {
puts(s);
};
MyCallback("123");
В рамках оффтопа: негоже printf и puts в плюсовом коде писать, да и char* там особо не место.
+8
Rx ещё не портировали на C++?
0
>> Кусок «->возвращаемый тип» может отсутствовать. Тогда подразумевается «->void»
там не void подразумевается, а auto и будет выведение типа для результата, как если бы мы объявили обычную функцию с типом auto, только в лямбдах это по умолчанию подразумевается.
там не void подразумевается, а auto и будет выведение типа для результата, как если бы мы объявили обычную функцию с типом auto, только в лямбдах это по умолчанию подразумевается.
+2
class FuncClass{
public:
// Переопределяемая функция
virtual void Call(char*)=0;
};
// Указатель на сохранённый класс
FuncClass *function;
public:
Callback(){
function=0;
}
Раз уж это C++11, то и вместо 0 или NULL стоит использовать nullptr
+4
А в коде вы специально не привели ни одного примера с захватываемыми переменными? Везде в примерах список захвата пуст — [].
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Лямбда-функции и реализация удобного механизма Callback-ов на C++