Сообщение Re[6]: Как такое написать по Сиплюсплюсному? от 24.03.2025 11:16
Изменено 24.03.2025 11:17 kov_serg
Re[6]: Как такое написать по Сиплюсплюсному?
Здравствуйте, B0FEE664, Вы писали:
BFE>Ну так и зачем эти извращения?
BFE>Если вам нужен указатель на группу функций, ну так и заведите группу функций и возьмите от неё указатель.
BFE>
BFE>А вообще, здесь где-то нужен полиморфизм вида signal-slot (или шаблонные виртуальные функции, которые в C++ все еще не могут добавить из-за косности мышления)
Хз. В C было просто достаточно двух указателей и кучи констант и никаких тебе UB
Вариант с лямбдами в std::function ещё более ужасен (на мой взгляд) чем другие альтернативы
Мой вариант работает достаточно хорошо и локанично, не смотря на то что это не достаточно сиплюсплюснуто.
А как написать parent_of следуя буквее6@нyтblх современных стандартов, я хз.
BFE>Ну так и зачем эти извращения?
BFE>Если вам нужен указатель на группу функций, ну так и заведите группу функций и возьмите от неё указатель.
BFE>
BFE>struct Listner
BFE>{
BFE> std::function<void(void *args)> begin;
BFE> std::function<int(double p)> progress;
BFE> std::function<void(void *args)> end;
BFE>};
BFE>struct GUIWindow {
BFE>...
BFE> // это объявление писать в конце класса
BFE> Listner action1 =
BFE> {
BFE> .begin = std::function<void(void *args)>( [pThis = this](void *args){ pThis->action1_begin((Action1Args*)args);}),
BFE> .progress = std::function<int(double p) >( [pThis = this](double p) { return pThis->action1_progress(p);}),
BFE> .end = std::function<void(void *args)>( [pThis = this](void *args){ pThis->action1_end((Action2Result*)res);}),
BFE> };
BFE>};
BFE>BFE>А вообще, здесь где-то нужен полиморфизм вида signal-slot (или шаблонные виртуальные функции, которые в C++ все еще не могут добавить из-за косности мышления)
Хз. В C было просто достаточно двух указателей и кучи констант и никаких тебе UB
Вариант с лямбдами в std::function ещё более ужасен (на мой взгляд) чем другие альтернативы
Мой вариант работает достаточно хорошо и локанично, не смотря на то что это не достаточно сиплюсплюснуто.
А как написать parent_of следуя букве
Re[6]: Как такое написать по Сиплюсплюсному?
Здравствуйте, B0FEE664, Вы писали:
BFE>Ну так и зачем эти извращения?
BFE>Если вам нужен указатель на группу функций, ну так и заведите группу функций и возьмите от неё указатель.
BFE>
BFE>А вообще, здесь где-то нужен полиморфизм вида signal-slot (или шаблонные виртуальные функции, которые в C++ все еще не могут добавить из-за косности мышления)
В C было просто достаточно двух указателей и кучи констант и никаких тебе UB
Вариант с лямбдами в std::function ещё более ужасен (на мой взгляд) чем другие альтернативы
Мой вариант работает достаточно хорошо и локанично, не смотря на то что это не достаточно сиплюсплюснуто.
А как написать parent_of следуя буквее6@нyтblх современных стандартов, я хз.
BFE>Ну так и зачем эти извращения?
BFE>Если вам нужен указатель на группу функций, ну так и заведите группу функций и возьмите от неё указатель.
BFE>
BFE>struct Listner
BFE>{
BFE> std::function<void(void *args)> begin;
BFE> std::function<int(double p)> progress;
BFE> std::function<void(void *args)> end;
BFE>};
BFE>struct GUIWindow {
BFE>...
BFE> // это объявление писать в конце класса
BFE> Listner action1 =
BFE> {
BFE> .begin = std::function<void(void *args)>( [pThis = this](void *args){ pThis->action1_begin((Action1Args*)args);}),
BFE> .progress = std::function<int(double p) >( [pThis = this](double p) { return pThis->action1_progress(p);}),
BFE> .end = std::function<void(void *args)>( [pThis = this](void *args){ pThis->action1_end((Action2Result*)res);}),
BFE> };
BFE>};
BFE>BFE>А вообще, здесь где-то нужен полиморфизм вида signal-slot (или шаблонные виртуальные функции, которые в C++ все еще не могут добавить из-за косности мышления)
В C было просто достаточно двух указателей и кучи констант и никаких тебе UB
Вариант с лямбдами в std::function ещё более ужасен (на мой взгляд) чем другие альтернативы
Мой вариант работает достаточно хорошо и локанично, не смотря на то что это не достаточно сиплюсплюснуто.
А как написать parent_of следуя букве