Я новичок в использовании функций C++ 11, а также попытаюсь использовать SDL_Widget-2 lib для создания простого Gui для моего проекта. Но я застрял в задаче:C++ 11 Ошибка компиляции функции Lambda
#include "sdl-widgets.h"
class Builder
{
public:
Builder():top_win(nullptr)
,but(nullptr)
{
top_win=new TopWin("Hello",Rect(100,100,120,100),0,0,false,
[]() {
top_win->clear();
draw_title_ttf->draw_string(top_win->render,"Hello world!",Point(20,40));
}
);
but=new Button(top_win,0,Rect(5,10,60,0),"catch me",
[](Button *b) {
static int dy=60;
b->hide();
b->move(0,dy);
b->hidden=false;
dy= dy==60 ? -60 : 60;
});
}
private:
TopWin * top_win;
Button *but;
};
int main(int,char**) {
Builder aViewBuilder;
get_events();
return 0;
}
с ошибкой на этапе компиляции:
В лямбда-функции:
error: 'this' was not captured for this lambda function
error: 'this' was not captured for this lambda function
эта ошибка печатается дважды ИНТ консоли. меня попробовать:
[this](){}
[=](){}
и
[&](){}
с различной ошибки компиляции, но не может идти дальше больше. Можно ли увидеть исправление?
Что такое 'draw_title_ttf'? От куда это? Его не объявлено в классе. – Gasim
- это функция из sdl-widgets lib, которая является оболочкой из sdl2 lib –