mam funkcje (wycialem parametry i logike zeby nie zaciemnialo kodu)
std::shared_ptr<Gui> Menu::prepareButton( Global_States state)
{
std::shared_ptr<Gui> button( [&]()-> void { game->changeState(state); }));
return button;
}
czyli ma mi wzrocic buttona ktory zmieni stan gry na taki ktory jest w parametrze funkcji
Funkcje wywoluje tak
prepareButton(STATE_QUIT)
albo tak
prepareButton(STATE_GAME)
niestety... nie dziala w ten sposob. Lambda gdy zostaje wywolana to bierze wszystko jako referencje. Oczywiscie moge zamienic na = i wtedy wszystko bedzie przekazane przez value. Ale nie wiem czy tego chce... game jest typu std::shared_ptr<Game> wiec niby kopiowanie wskaznika nie jest az tak kosztowne, ale nadal na przyszlosc chcialbym sie dowiedziec
Jak zrobic by game zostal przekazany przez referencje a state przez value?