Здравствуйте, wl., Вы писали:
wl.>насколько я понимаю, в том же C# подобная функциональность это часть стандарта языка, причем очень активно использующаяся
за пределами куте, они нигде не используются
щарп не просто язык
там и гуи насколько я понимаю
вообще не плохо интересоваться работой комитета
что бы понимать что основная нагрузка идет
на разбор и отфутболивание тупых пропозлов
Re[2]: а почему Qt-шные сигналы/слоты не вносят в стандарт C++?
Здравствуйте, Великий Мессия, Вы писали:
ВМ>Здравствуйте, wl., Вы писали:
wl.>>насколько я понимаю, в том же C# подобная функциональность это часть стандарта языка, причем очень активно использующаяся
ВМ>за пределами куте, они нигде не используются ВМ>щарп не просто язык ВМ>там и гуи насколько я понимаю
так сигналы это не только GUI — асинхронная работа сети та же, но тут, конечно, ASIO тоже не часть стандарта С++
Re: а почему Qt-шные сигналы/слоты не вносят в стандарт C++?
Здравствуйте, wl., Вы писали:
wl.>насколько я понимаю, в том же C# подобная функциональность это часть стандарта языка, причем очень активно использующаяся
Потому что в Qt мета-объектный компилятор, сокращённо moc. Он сначала парсит C++ код со специальными для него вставками включая макросы, а потом генерирует дополнительные moc_*.cpp файлы используя конструкции C++. И только потом это попадает в компилятор C++. Мета-объекты, а так же сигналы и слоты работающие за счёт них не являются частью стандарта C++.
Более того мета-объектный компилятор генерирует конструкции вида switch и if. То есть ты бы сам мог руками прописать, что он там генерирует, но без ограничений moc, а исходя из своей фантазии ограничивающейся лишь C++. Или и вовсе взять решения из Boost. Почему, к примеру, Qt, а не Boost по твоему лучше?
Лично я думаю, что если в C++ официально будут вводить сигнал и слоты, то к Qt это не будет иметь отношения.
Re[3]: а почему Qt-шные сигналы/слоты не вносят в стандарт C++?
Здравствуйте, wl., Вы писали:
wl.>Здравствуйте, Великий Мессия, Вы писали:
ВМ>>Здравствуйте, wl., Вы писали:
wl.>>>насколько я понимаю, в том же C# подобная функциональность это часть стандарта языка, причем очень активно использующаяся
ВМ>>за пределами куте, они нигде не используются ВМ>>щарп не просто язык ВМ>>там и гуи насколько я понимаю
wl.>так сигналы это не только GUI — асинхронная работа сети та же, но тут, конечно, ASIO тоже не часть стандарта С++
std::function прекрасно с этим справляется
экзекуторы которые завезли в С++26 тоже прекрасно работают без сигналов
Re[2]: а почему Qt-шные сигналы/слоты не вносят в стандарт C++?
Здравствуйте, Великий Мессия, Вы писали:
ВМ>std::function прекрасно с этим справляется ВМ>экзекуторы которые завезли в С++26 тоже прекрасно работают без сигналов
ну наверное, мне просто не понятно, почему такая удачная реализация асинхронности не входит в язык без костылей препроцессора Qt
Re[3]: а почему Qt-шные сигналы/слоты не вносят в стандарт C++?
Здравствуйте, wl., Вы писали:
wl.>насколько я понимаю, в том же C# подобная функциональность это часть стандарта языка, причем очень активно использующаяся
Нахрен они нужны в стандарте.
А вот property с get/set хэндлерами были очень приятны
Здравствуйте, wl., Вы писали:
wl.>ну наверное, мне просто не понятно, почему такая удачная реализация асинхронности не входит в язык без костылей препроцессора Qt
Здравствуйте, Философ, Вы писали:
Ф>До гуи в языке только Борланд мог додуматься, в шарпе такого не было, нет, и врядли будет. Ф>Если что, я про вот такое: Ф>
Здравствуйте, wl., Вы писали:
M>>А вот property с get/set хэндлерами были очень приятны
wl.>Эх... и это в Qt тоже есть, пусть и не так удобно, как в C#
Это ещё борман делал в середине 90ых в своих дельфях нативно, и перенёс в свой плюсовый билдер с нативной поддержкой компилятором:
class TMyComponent : public TComponent
{
private:
int FMyValue;
void __fastcall SetMyValue(int Value);
public:
__property int MyValue = { read=FMyValue, write=SetMyValue };
};
Мне нравилось, я подобное делал на плюсах без всякого кути, но без макросов не обходилось
Здравствуйте, Философ, Вы писали:
M>>А что это? И причем тут язык? Кстати, язык явно не плюсы, дельфячка, судя по всему
Ф>Да, это делфля. У них в язык диспатчер виндовых сообщений втроен, прямо в Object'е есть метод Dispatch(). Подробнее тут.
Нет, диспатчер не встроен в язык, это исключительно библиотечная пристройка. Всё тоже самое было и билдере, фришным компилятором которого (BC++5.5) я некоторое время пользовался для написания и гуишных и консольных программ
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, Философ, Вы писали:
M>>>А что это? И причем тут язык? Кстати, язык явно не плюсы, дельфячка, судя по всему
Ф>>Да, это делфля. У них в язык диспатчер виндовых сообщений втроен, прямо в Object'е есть метод Dispatch(). Подробнее тут.
M>Нет, диспатчер не встроен в язык, это исключительно библиотечная пристройка. Всё тоже самое было и билдере, фришным компилятором которого (BC++5.5) я некоторое время пользовался для написания и гуишных и консольных программ
а почему не самим билдером? в те годы всё подобное ПО было толи взломанным, толи вообще без защиты
Re[7]: а почему Qt-шные сигналы/слоты не вносят в стандарт C++?
Здравствуйте, wl., Вы писали:
M>>Нет, диспатчер не встроен в язык, это исключительно библиотечная пристройка. Всё тоже самое было и билдере, фришным компилятором которого (BC++5.5) я некоторое время пользовался для написания и гуишных и консольных программ
wl.>а почему не самим билдером? в те годы всё подобное ПО было толи взломанным, толи вообще без защиты
Потому, что билдер был не нужен, не хотел завязываться на их библиотеки