LINUX.ORG.RU

[C++] Посоветуйте хороший опенсоурс проект

 


0

2

Всем привет! Посоветуйте интересный опенсоурс проект на C++, в частности для самообразования. Наконец надоело изобретать велосипеды с квадратными колесами и хочется узнать как правильно писать код и почему...

Gwenview, например.

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

> Frogatto?

Frog - лягушка, gatto - кот. Забавно.

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

Не помешало бы в него поддержку *.chm запилить.

kde-base/okular
     Available versions:  4.6.3 4.6.5 (~)4.7.0 (~)4.7.1 {chm crypt debug djvu ebook +jpeg +pdf +ps +tiff}
     Installed versions:  4.6.2(4)(03:24:23 29.04.2011)(>>>chm<<< crypt djvu jpeg pdf ps tiff -aqua -debug -ebook -handbook -kdeenablefinal -kdeprefix)
anonymous
()
Ответ на: комментарий от f1xmAn

> Ответ в лучших традициях анонимусов.

Ну а чего ты ожидал? Я догадываться до твоего дистрибутива должен по аватарке? Если это арч, то я понятия не имею, что у вас там за пакетный менеджер и кто собирает софт. Гугли, обращайся к мейнтернерам, собери сам их исходников (не забудь поставить chmlib or whatever).

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

У меня тоже открываются. Дистропроблемы или я Анонимусов?

Ну или дай на всякий случай файл, который у тебя не открывается.

madcore ★★★★★
()

Наконец надоело изобретать велосипеды с квадратными колесами и хочется узнать как правильно писать код и почему...

Изучай более концептуальные языки. Тогда будет понятно, как правильно писать код, и почему в C++ колёса получаются квадратными.

mv ★★★★★
()

> C++

хороший

опенсоурс

Выберите любые два.

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

Да, стоило бы его переписать с меньшим обилием шаблонов :) А то очень медленно компилируется, очень толстый бинарник получается в некоторых случаях, и компилятор еще и выдает очень неинформативные сообщения об ошибках.

PS. Везде, где возможно, заменил в своем коде Boost на POCO.

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

Spirit & MPL!

Вы так говорите, как будто это что-то плохое. А вообще-то ещё и Asio, Exception, Fusion, Proto, Phoenix, Python.

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

Если заменить статический полиморфизм динамическим, то мы выйграем в скорости компиляции, но проиграем в скорости работы. Чем этот POCO лучше буста ?

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

1. Тем, что быстро компилируется

2. Тем, что мало занимает (в сравнении с бустом)

3. Тем, что полиморфизм выпилен везде, где он не является необходимостью.

4. Имеет много интересных вкусностей, отсутствующих в бусте, но часто нужных.

5. (ЭТО ИМХА) API более приятный.

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

3. Тем, что полиморфизм выпилен везде, где он не является необходимостью.

Т.е. мам где он не является необходимым разработчикам POCO или большинству пользователей?

C учётом п. 1, этот POCO должен проигрывать бусту в производительности, т.к. полиморфизм должен использоваться динамический.

4. Имеет много интересных вкусностей, отсутствующих в бусте, но часто нужных.

А именно?

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

1. Тем, что быстро компилируется

2. Тем, что мало занимает (в сравнении с бустом)

За счет чего?

3. Тем, что полиморфизм выпилен везде, где он не является необходимостью.

А как оно тогда работает? Как, например, без полиморфизма там сделаны умные указатели? На макросах чтоль ?

4. Имеет много интересных вкусностей, отсутствующих в бусте, но часто нужных.

Каких?

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

За счет чего?

За счет того, что полиморфизм и шаблоны оставлены только там, где их нельзя избежать.

А как оно тогда работает? Как, например, без полиморфизма там сделаны умные указатели? На макросах чтоль ?

Умные указатели там точно такие же, как в бусте. Я же написал: полиморфизм (как статический, так и динамический) есть только там, где он необходим, а сделать без него умные указатели принципиально невозможно.

Для примера того, о чем я говорю: сравните бустовые и Poco-вские регекспы, треды, сокеты...

Каких?

В документацию: то, что нужно мне, скорее всего, не нужно вам.

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

Для примера того, о чем я говорю: сравните бустовые и Poco-вские регекспы, треды, сокеты...

Динамический полиморфизм с наследованием, как я и думал. В общем фтопку!

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

Т.е. мам где он не является необходимым разработчикам POCO или большинству пользователей?

Там, где он не является необходимым, с точки зрения разработчиков POCO, естественно (но их т.з относительно полиморфизма почти полностью совпадает с моей).

C учётом п. 1, этот POCO должен проигрывать бусту в производительности, т.к. полиморфизм должен использоваться динамический.

Берем в качестве примера бустовые сокеты, регекспы, треды и сравниваем их с поковскими...

Статический полиморфизм в некоторых местах (в Foundation - довольно часто) ИСПОЛЬЗУЕТСЯ, но там, где без него никак, а не как в бусте.

Deleted
()

qbittorrent, хотя там вроде и так всё есть

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

>много интересных вкусностей

вкусностей

ВОООН ОТСЮДА!!!

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

Спасибо, но Столлман не помог. Либо Okular с его точки зрения не кошерен, либо нужно ковырять chmlib.

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

Столман всегда с нами,он дарует тебе возможность лучше разобраться в chmlib

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

Могу подтвердить. Ссылки не проверял, ибо не дождался окончания рендеринга.
Qt: 4.7.2
KDE Development Platform: 4.6.2 (4.6.2)
Okular: 0.12.2
chmlib: 0.40-r1

Мне лень разбираться, chm'ы почти не открываю. Вообще, надо бы обновиться, но тоже лень.

anonymous
()
Ответ на: комментарий от anonymous
$ okular --version
Qt: 4.7.4
KDE: 4.7.2 (4.7.2)
Okular: 0.13.80
$ pacman -Qi chmlib
...
Версия                : 0.40-2
...

Сам *.chm открыл первый раз за 2 года и такая лажа. Да и пофиг, в принципе, врядли оно мне скоро понадобится. К слову, kchmviewer и xchm работают как надо, следовательно проблема не в chmlib, а в самом okular. Такие дела.

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