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





Да, это имеет смысл. Я обычно предпочитаю использовать функции boost / stdlib, где это возможно, а не их альтернативы Qt.
Это упрощает перенос кода на следующий фреймворк. Это позволяет начинающим программистам, не использующим Qt, быстрее набрать скорость. Boost имеет отличную функциональность и постоянно расширяется.
примечание: строки в / из виджетов, вероятно, являются основным исключением - внутри графического интерфейса я бы использовал строки Qt, чтобы везде сохранять запутанные приведения.
Верно для ускорения, но я бы все равно использовал std :: vector и т. д. Поверх классов коллекции Qt
Скорее мнение, чем ответ.
Мы (Last.fm) используем их оба вместе, хотя мы только начали это делать, и поэтому у нас еще нет большого опыта. Пока все хорошо :)
Тем более, что вы переходите на кроссплатформенность, у вас должна быть хорошо многоуровневая архитектура с максимально удаленными из графического интерфейса бизнес-логикой и доступом к данным. В этом случае имеет смысл использовать Boost при написании бэкэнда вашего приложения и переходить только к Qt для фронтенда с обязательной кучей приведений, сделанных в клее.
Если ваш «движок» отделен от вашего выбора графического интерфейса, вы сможете заменить Qt на что-то еще в будущем (возможно, собственные библиотеки) с минимальными усилиями.
Есть потенциальные проблемы с использованием Boost.Signals вместе с QT. Они задокументированы в Boost.Signals FAQ.
Эта бумага очень прилично сравнивает механизм сигнальные слоты в QT и Boost :: Signal. Это обязательно к прочтению для тех, кто немного интересуется этим миксом.
Хорошая бумага. Спасибо за ссылку.
Учтите, что Сигналы повышения 2 доступны, и они потокобезопасны.
Qt также имеет отличную функциональность и постоянно расширяется. Qt имеет отличную (лучшую) документацию по сравнению с Boost (на основе моего опыта использования обоих). Можно возразить, что использование Boost затрудняет также и программистов, не использующих Boost.