Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите составить письмо на english в nokia, Formal parameters in SIGNAL macro 
V
    Опции темы
boostcoder
Дата 5.4.2010, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(SABROG @  5.4.2010,  11:06 Найти цитируемый пост)
Покажите мне пример, где 2 объекта находящихся в разных потоках общаются между собой посредством boost::signals2 и boost::asio::io_service. Один объект посылает сигнал другому, не дожидаясь выполнения завершает свою работу, второй объект продолжает выполнять долгую задачу, например на секунд 10. Тогда я отстану. 

легко.
это реализовано в проекте. сейчас состряпаю независимый код. по идее, класс-предок.
отпишусь в эту тему.

PM WWW   Вверх
SABROG
Дата 5.4.2010, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(boostcoder @  5.4.2010,  11:20 Найти цитируемый пост)
легко.
это реализовано в проекте. сейчас состряпаю независимый код. по идее, класс-предок.
отпишусь в эту тему.

Ок.

Цитата(azesmcar @  5.4.2010,  11:12 Найти цитируемый пост)
Но если это спор - то бессмысленный, я нв думаю что вы не считаете сигналы Qt идеальными.

Тролли сами советуют использовать тот же паттерн Observer, если система сигналов-слотов не удовлетворяет.

Статья старая и в ней еще не сравнивается boost::signals2, но большинство написанного правда: http://web.archive.org/web/20070703100120/...-and-slots.html

Плюс вы забываете почему Qt не может использовать boost'овское подобие сигналов и слотов на основе шаблонов:

Why Doesn't Qt Use Templates for Signals and Slots?

Это сообщение отредактировал(а) SABROG - 5.4.2010, 11:39


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
W4FhLF
Дата 5.4.2010, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 4
Всего: 121



Мне кажется это проблема новичков в Qt. Я давно уже за собой таких ошибок не наблюдаю. smile


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
azesmcar
Дата 5.4.2010, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



Цитата(SABROG @  5.4.2010,  11:28 Найти цитируемый пост)
Плюс вы забываете почему Qt не может использовать boost'овское подобие сигналов и слотов на основе шаблонов:

Why Doesn't Qt Use Templates for Signals and Slots?

честно говоря аргументы не убедили
Цитата

Even today, many widely used C++ compilers have problems with advanced templates. For example, you cannot safely rely on partial template specialisation

давно уже не видел таких компиляторов..такое можно было сказать лет 5-6 назад, но никак не сейчас.
Им что, надо чтобы Qt компилировался под Borland C++ 3.1? Я думаю этим можно спокойно пожертвовать во имя красоты кода и дизайна, но это мое мнение.

Это сообщение отредактировал(а) azesmcar - 5.4.2010, 13:36
PM   Вверх
boostcoder
Дата 5.4.2010, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



вообще бред полнейший smile
ощущение такое, что Qt-программисты, вообще не используют шаблоны.
вот вы попробуйте в качестве слота, указать функциональный объект созданный при помощи std::bind(), или лямбда выражение?! smile 
а как без этого писать?! как же метапрограммирование, boost.mpl?!
в итоге, во имя своей сигнал/слотовой модели, они отрубили большую часть С++. настоящего С++ !...эх...


Это сообщение отредактировал(а) boostcoder - 5.4.2010, 13:43
PM WWW   Вверх
borisbn
Дата 5.4.2010, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(W4FhLF @  5.4.2010,  13:09 Найти цитируемый пост)
Мне кажется это проблема новичков в Qt. Я давно уже за собой таких ошибок не наблюдаю.

вот именно, новичков. ведь полно же вопросов: "у меня не коннектятся сигналы со слотами ..."
почему бы не сделать им жизнь проще.
ведь сделали же они, например, в QDir::entryList параметр QDir::NoDotAndDotDot

Цитата(boostcoder @  5.4.2010,  13:42 Найти цитируемый пост)
ощущение такое, что Qt-программисты, вообще не используют шаблоны.

интересно, откуда такое ощущение ? У меня весь сетевой обмен построен на шаблонах. Одно другому не мешает. Да, в сигнал/слотах их использовать нельзя. IMHO с таким ограничением но с такой библиотекой, как Qt, жить можно smile

Цитата(boostcoder @  5.4.2010,  13:42 Найти цитируемый пост)
в итоге, во имя своей сигнал/слотовой модели, они отрубили большую часть С++

никто ничего не отрубал. я использовал boost в приложениях на Qt.



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
boostcoder
Дата 5.4.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(borisbn @  5.4.2010,  14:23 Найти цитируемый пост)
никто ничего не отрубал. я использовал boost в приложениях на Qt.

аргумент, тоже мне smile
и в с++ можно писать процедурно. о чем вы и сказали.

PM WWW   Вверх
djamshud
Дата 5.4.2010, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 5
Всего: 39



boostcoder, а вы шутник. Функциональщина - да, это "настоящий с++". Очень смешно, спасибо.

По сабжу. Не вижу никакого смысла в усложнении разбора connect-а. Новички на то и новички, чтобы учиться. Почему бы не отменить необходимость точки запятой в конце с++-выражения? Я ее изредка забываю, новички, думаю, тоже.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
W4FhLF
Дата 5.4.2010, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 4
Всего: 121



Цитата(boostcoder @  5.4.2010,  13:42 Найти цитируемый пост)
вот вы попробуйте в качестве слота, указать функциональный объект созданный при помощи std::bind(), или лямбда выражение?!  а как без этого писать?! как же метапрограммирование, boost.mpl?!


У меня успешно используется и boos::bind в Qt приложении. Но, естественно, не в качестве слотов. Даже если бы была такая возможность, я бы не стал её использовать. Потому что мешать boost::bind и qt::connect это просто неверно с т.з. архитектуры. Каша какая-то получается. А так всё прекрасно, никто не отменял функторы и Q_OBJECT в своих классах. qt specific и boost specific разделены.


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
djamshud
Дата 5.4.2010, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 5
Всего: 39



А вообще Qt-шные сигнал-слоты хороши своей чрезвычайной динамичностю. В бусте же они статически прибиты гво^Wшаблонами.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
SABROG
Дата 5.4.2010, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



А если с переводом на русский?

Цитата

Наше решение предоставляет гораздо больше возможностей, чем шаблоны. Например, мы можем наделить объекты свойствами и перегрузить сигналы и слоты, что есть естественно для языка программирования, в котором перегрузка является ключевой особенностью. Наши сигналы не добавляют ни одного байта к размеру экземпляра класса, поэтому мы можем добавлять новые сигналы без потери бинарной совместимости. Механизм сигналов и слотов, в отличие от шаблонов, не приводит к чрезмерной генерации кода, благодаря чему его размер остается меньшим. Добавление новой связи приводит лишь к вызову простейшей функции, а не к генерации сложной шаблонной функции. Другим преимуществом является возможность манипулирования сигналами и слотами объекта во время выполнения. Используя вызов по имени, мы можем безопасно создавать связи без необходимости точного знания типов связываемых объектов, чего нельзя достичь с помощью шаблонов. Такой вид доступа к объектам во время выполнения открывает новые возможности, например, создание GUI-интерфейса и необходимых связей из XML UI-файлов





--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
boostcoder
Дата 5.4.2010, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(djamshud @  5.4.2010,  15:18 Найти цитируемый пост)
boostcoder, а вы шутник. Функциональщина - да, это "настоящий с++". Очень смешно, спасибо.

не понял, о чем речь?

Цитата(W4FhLF @  5.4.2010,  15:22 Найти цитируемый пост)
Но, естественно, не в качестве слотов.

естественно. даже если бы захотели smile

Цитата(W4FhLF @  5.4.2010,  15:22 Найти цитируемый пост)
Потому что мешать boost::bind и qt::connect это просто неверно с т.з. архитектуры.

связыватели и сигналы/слоты, разные по идее. что общего? о чем речь?

Цитата(djamshud @  5.4.2010,  15:23 Найти цитируемый пост)
В бусте же они статически прибиты гво^Wшаблонами. 

?
PM WWW   Вверх
azesmcar
Дата 5.4.2010, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



пора переносить в религиозные войны.
PM   Вверх
boostcoder
Дата 5.4.2010, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 4
Всего: 110



Цитата(SABROG @ 5.4.2010,  15:23)
А если с переводом на русский?

Цитата

Наше решение предоставляет гораздо больше возможностей, чем шаблоны. Например, мы можем наделить объекты свойствами и перегрузить сигналы и слоты, что есть естественно для языка программирования, в котором перегрузка является ключевой особенностью. Наши сигналы не добавляют ни одного байта к размеру экземпляра класса, поэтому мы можем добавлять новые сигналы без потери бинарной совместимости. Механизм сигналов и слотов, в отличие от шаблонов, не приводит к чрезмерной генерации кода, благодаря чему его размер остается меньшим. Добавление новой связи приводит лишь к вызову простейшей функции, а не к генерации сложной шаблонной функции. Другим преимуществом является возможность манипулирования сигналами и слотами объекта во время выполнения. Используя вызов по имени, мы можем безопасно создавать связи без необходимости точного знания типов связываемых объектов, чего нельзя достичь с помощью шаблонов. Такой вид доступа к объектам во время выполнения открывает новые возможности, например, создание GUI-интерфейса и необходимых связей из XML UI-файлов

про метапрограммирование создатели Qt не слышали smile
и аргументация детская какая-то.

Добавлено через 53 секунды
да, пора сворачивать дискуссию.

Добавлено через 5 минут и 13 секунд
похожий вопрос уже обсуждался здесь: http://forum.vingrad.ru/index.php?showtopi...t&p=2113889
PM WWW   Вверх
borisbn
Дата 6.4.2010, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



OK, вы все, вместе с троллями, меня убедили. Я им в JIRA написал. И вот ответ:
Цитата

Your suggestion makes sense, however this would degrade Qt performance and there already is a warning printed for wrong usage of the connect() function.



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1046 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.