Я использую библиотеку gtkmm с C ++, и я пытаюсь создать сигнал, который позволяет изменить текущую вкладку, но она не работает.
На самом деле я думаю, что проблема исходит из этой строки:
menuit->signal_activate().connect([&bo]() {bo->next_page();});
Куда:
menuit = Gtk::MenuItem
bo = Gtk::Notebook
Код хорошо компилируется, но при выполнении я получаю следующую строку:
Segmentation fault
(program exited with code: 139)
Большое спасибо за вашу помощь!
menuit->signal_activate().connect([&bo]() {bo->next_page();});
Вы захватываете bo
по ссылке, так что во время выполнения сигнала я думаю, что захват стал висячей ссылкой.
Попробуйте скопировать (в конце концов, bo
это указатель):
menuit->signal_activate().connect([bo]() {bo->next_page();});
Других решений пока нет …