LINUX.ORG.RU

CopperSpice — форк Qt 4.8 с поддержкой С++11

 , ,


2

5

Проект CopperSpice — это набор С++ библиотек производных от фреймворка Qt 4.8.

Его основной целью является переработка кодовой базы родительского проекта, чтобы иметь возможность полноценного использования шаблонов, метапрограммирования и нового стандарта Си++11. По мнению разработчиков, данные архитектурные решения позволили полностью отказаться от использования генератора кода известного как Moc (Qt Meta-Object Compiler).

Именно Moc, как таковой, не поддерживает многие возможности современного Си++ как то: шаблоны, сложные типы данных, статическую проверку типов и сильно связан с операциями строкового сравнения. Удаление Moc позволит увеличить производительность приложения, сделает процесс сборки более простым, а также позволит выявлять большее количество проблемного кода еще на этапе компиляции.

Кроме поддержки функциональности Qt 4.8, в CopperSpice выполняется портирование и некоторых классов Qt 5.

Код распространяется под лицензией LGPL.

Основные возможности фреймворка CopperSpice:

  • CopperSpice является форком Nokia LGPL Qt 4.8.2;
  • Qt Moc более не используется;
  • фреймворк написан на Си++11;
  • библиотека может быть напрямую слинкована с обычным приложением на Си++;
  • шаблонный класс может наследоваться от QObject;
  • для сборки библиотек CopperSpice используется привычный многим GNU Autotools.

Фреймворк предоставляет следующие библиотеки:CsCore, CsGui, CsMultimedia, CsNetwork, CsOpenGL, CsPhonon, CsSql, CsSvg, CsWebKit, CsXml и CsXmlPatterns.

По заявлению разработчиков конвертация проектов на Qt в CopperSpice легко осуществляется утилитой PepperMill.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от EXL

Ага, спасибо!

Интересно, потянет на новость или нет? :-)

Twissel ★★★★★ ()

Это революция против Qt5 & QML?

Deleted ()
Ответ на: комментарий от Deleted

Судя по тому, какая маленькая команда это пилит «революция может не выстрелить (с)»

Twissel ★★★★★ ()
Последнее исправление: Twissel (всего исправлений: 1)

Qt Moc более не используется

Что теперь с рефлексией?

backburner ()

Если они захотели выпилить moc, то зачем они взяли для этого труп, а не живую ветку?

asaw ★★★★★ ()
Ответ на: комментарий от asaw

А что там в живой ветке такое добавилось?

anonymous ()
Ответ на: комментарий от anonymous

Очень много всего по мелочам, особенно касательно поддержки всяких андройдов, айосей и прочих винартей.

asaw ★★★★★ ()
Ответ на: комментарий от anonymous

Да всё, в старую даже бэкпорты не делаюцо. Я как-то указал на косяк в base64 реализации в багтрекере, чувак сказал «о, спасибо» и поправил документацию =)

UVV ★★★★★ ()
Ответ на: комментарий от UVV

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

anonymous ()

Не вижу смысла в этом проекте.

Путь в никуда. Через год уже никто и вспоминать не будет, как это было с Qt3. Надо Qt5 дорабатывать, если кому-то что-то жмёт на данный момент.

Перевести проект с Qt4 на Qt5 не очень сложно.

navrocky ()
Последнее исправление: navrocky (всего исправлений: 2)

Стоит ли упоминать, что у них там STL-контейнеры вместо родных. Эхехе.

fenris ★★★★★ ()
Ответ на: Не вижу смысла в этом проекте. от navrocky

Re: Не вижу смысла в этом проекте.

Надо Qt5 дорабатывать

А отказ от своих прав там и сейчас надо подписывать?

anonymous ()

Может на него какой-нибудь форк KDE3 портируют?

mittorn ★★★★★ ()

Не собирается. Есть идеи, куда копать?

src/gui/widgets/.libs/lib_libCsGui1_la-qtoolbox.o: file not recognized: Memory exhausted

anonymous ()

Qt пора закапывать. Было время и казалось что они делают будущее, но это была ошибка.

Ни Qt ни форки не нужны

weare ★★ ()

Autotools
Qt 4.8

Да они знатные извращенцы. Ничего им не светит

RevenantX ★★★★ ()
Ответ на: комментарий от RevenantX

Программист? Или просто пользователь?

Вообще программист, но на Qt не писал. Для всего же есть Java

weare ★★ ()
Ответ на: комментарий от weare

Вообще программист, но на Qt не писал. Для всего же есть Java

Ну-ка запусти свою яву на ios, например. Ну или сделай на ней приложение для Windows Store.

Оно-то, как говорится, хорошо говорить, что @XYZ@ тулкит лучше чем Qt.. но альтернатив то не особо много и у всех есть свои проблемы. Не хочу сказать, что у Qt их нет. Просто кому что нравится.

navrocky ()
Ответ на: комментарий от RevenantX

Autotools
Qt 4.8

Да они знатные извращенцы. Ничего им не светит

Действительно. Сплошная некрофилия.

navrocky ()
Ответ на: комментарий от weare

Qt пора закапывать

Лучше библиотеки для кроссплатформенного гуя нет.

orion ★★ ()

Ах да.

полностью отказаться от использования генератора кода известного как Moc (Qt Meta-Object Compiler).

Возможно они не в курсе, что в Qt6 уже отказались.

fenris ★★★★★ ()

Если у них всё преимущество в том, что нет Qt Moc, то нафиг оно надо? Тем более, что в Qt на эту тему тоже думают, может когда-то и созреют. Да и С++11 тоже не всё так однозначно - есть же в Qt некоторые макросы на эту тему. А то, что без поддержки С++11 использовать можно тоже расширяет аудиторию.

DarkEld3r ★★★★★ ()
Ответ на: комментарий от fenris

Стоит ли упоминать, что у них там STL-контейнеры вместо родных. Эхехе.

И почему это плохо?

tailgunner ★★★★★ ()
Ответ на: комментарий от weare

Я сам Яву люблю и использую, но ты зелёный и толстый троль.

WatchCat ★★★★★ ()
Ответ на: комментарий от weare

Java пора закапывать. Было время и казалось что они делают будущее, но это была ошибка.

Ни Java ни форки не нужны

fluorite ★★★★★ ()
Ответ на: комментарий от DarkEld3r

Если у них всё преимущество в том, что нет Qt Moc, то нафиг оно надо? Тем более, что в Qt на эту тему тоже думают, может когда-то и созреют. Да и С++11 тоже не всё так однозначно - есть же в Qt некоторые макросы на эту тему.

Насколько я понял, основная проблема с конпелятором мелкософта, который не полностью поддерживает c++11. Фреймворк-то кроссплатформенный.

anonymous ()

иметь возможность полноценного использования шаблонов, метапрограммирования и нового стандарта Си++11.

Очередной вброс про мощность цепепе :-)

anonymous ()
Ответ на: комментарий от anonymous

А что не так с мощностью цепепе?

anonymous ()
Ответ на: комментарий от anonymous

Насколько я понял, основная проблема с конпелятором мелкософта, который не полностью поддерживает c++11.

Я думаю, что находятся желающие собирать Qt и старыми версиями «нормальных компиляторов».

DarkEld3r ★★★★★ ()
Ответ на: комментарий от anonymous

А что не так с мощностью цепепе?

Какая уж там мощность, там сплошная ущербность :-)

anonymous ()

А чего уж не на С++14 сразу? ;-)

anonymous ()
Ответ на: комментарий от anonymous

Наверно из-за того, что не все компиляторы его поддерживают?

А вообще, пусть сразу на 17 плюсах пишут, чего уж там.

kachsheev ★★★ ()
Ответ на: комментарий от kachsheev

Да пусть пишут на чём угодно. Всё равно будет использовать 2 с половиной ретрограда... да и те не будут использовать, т.к. и конопляторы у них старые %)

navrocky ()
Ответ на: комментарий от anonymous

А чего уж не на С++14 сразу? ;-)

Для реализации слот-сигнальной системы на самом языке c++ достаточо c++11. До этого нельзя было.

x86_64 ★★★ ()
Ответ на: комментарий от navrocky

Да пусть пишут на чём угодно. Всё равно будет использовать 2 с половиной ретрограда... да и те не будут использовать, т.к. и конопляторы у них старые %)

Учитывая autotools, выстрелить может. Любят его ретрограды.

x86_64 ★★★ ()
Ответ на: комментарий от x86_64

Для реализации слот-сигнальной системы на самом языке c++ достаточо c++11. До этого нельзя было.

Хм. А как-же Boost.Signals? Я помню, с этой штукой игрался, когда четвёртый Qt только-только в продакшн пошёл.

be_nt_all ()
Ответ на: комментарий от be_nt_all

Хм. А как-же Boost.Signals? Я помню, с этой штукой игрался, когда четвёртый Qt только-только в продакшн пошёл.

Имелось ввиду реализацию с тем же синтаксисом и семантикой.

Даже статья где то было от Qt-шников про этому поводу. А так да. Похожую функциональность и раньше можно было сделать.

x86_64 ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.