Смешивание Qt и Boost

Я ищу запуск проекта на С++ с использованием инфраструктуры Qt 4 (необходим кросс-платформенный графический интерфейс). Я много слышал о библиотеках Boost от друзей и в Интернете. Я начал читать и то и другое, и хотел задать мне беглый вопрос, прежде чем я углубился. Разве эти две системы развития "взаимоисключающие"?

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

Имеет ли смысл использовать их как в одном проекте?

Ответ 1

Да, это имеет смысл. Обычно я предпочитаю использовать функции boost/stdlib, где это возможно, а не их альтернативы Qt.

Это упрощает перенос кода в следующую структуру.
Это облегчает для новых программистов, не относящихся к Qt, получить максимальную скорость.
Boost обладает отличной функциональностью и становится все больше.

note: строки в/из виджетов, вероятно, являются основным исключением. Внутри графического интерфейса я бы использовал строки Qt, чтобы сохранить запутанные приведения везде.

Ответ 3

Тем более, что вы переходите на межплатформенную платформу, у вас должна быть хорошо многослойная архитектура, при которой бизнес-логика и доступ к данным максимально удаляются из графического интерфейса. В этом случае было бы целесообразно использовать Boost при написании бэкэнда вашего приложения и только перейти к Qt для интерфейса, с обязательной кучей закладок, сделанных в клее.

Если ваш "движок" отделен от вашего графического интерфейса, вы сможете сменить Qt на что-то еще в будущем (возможно, на родные библиотеки) с минимальными усилиями.

Ответ 4

Мы (Last.fm) используем их оба вместе, хотя мы только начали это делать, и поэтому у нас пока не много опыта. Пока все нормально:)

Ответ 6

Учтите, что Boost Signals2 доступны, и они являются потокобезопасными.