LINUX.ORG.RU

Qlibs++ — header-only библиотеки для C++20

 , ,


1

3

Kris Jusiak создал проект Qlibs++ с header-only библиотеками для С++20, без сторонних зависимостей. Часть из них – облегчённые версии библиотек из boost-ext.

На данный момент есть:

  • di – внедрение зависимостей;
  • jmp – статический jump;
  • mem – аллокаторы;
  • mp – мета-программирование;
  • mph – статические (минимальные) идеальные хеш-функции;
  • reflect – статическая рефлексия;
  • sml – конечные автоматы;
  • swarSWAR;
  • ut – юнит-тесты.

Приятного чтения! :)

★★★★★

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

Нет, только reflect чуть больше 100 Kb.

dataman ★★★★★
() автор топика

Откуда интересно эта мода на header-only библиотеки, оно же по идее адски увеличивает время компиляции.

P.S. @firkax, что тебе не нравится?

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

Не вера, а знание. Проходи мимо.

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

Откуда интересно эта мода на header-only библиотеки, оно же по идее адски увеличивает время компиляции.

Если библиотека вся сплошь на шаблонах (а большинство перечисленных в стартовом сообщении, полагаю, именно такие), то пока C++ные модули не внедрят повсеместно другого выхода-то и нет.

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

увеличивает время компиляции

Зато лучше оптимизируется.

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

Отсюда же, кстати, мода на amalgamation.

LamerOk ★★★★★
()
Последнее исправление: LamerOk (всего исправлений: 1)
Ответ на: комментарий от LamerOk

В первую очередь

Не соглашусь. :)
GLM, например, будет работать быстрее с -march=<...>. Или std::simd.

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

Сколько ядер и гигабайт памяти нужно для работы с сабжем?

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

Мода пошла из шаблонной магии: ты шаблонную функцию по-другому не напишешь, кроме как в хидере. Либо указывать все возможные инстансы, что неудобно.

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

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

Для виндузятников, главным образом

Отсюда же, кстати, мода на amalgamation.

Amalgamation часто позволяют нехило сократить размер бинарника. Во времена, когда LTO было только в интеловском компиляторе, это было очень ценно.

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

Для виндузятников, главным образом

Виндузятники буквально добавили папку с исходниками в проекте студии и погнали. 9 из 10 без студии не могут скомпилировать проект.

Это в попенсурсе вечна борьба автолулзов с симейком помноженная на месонониньзю, а снизу-сбоку на всё это смотрит ошалевшими глазами GNU make.

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

P.S. @firkax, что тебе не нравится?

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

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

То есть, если запрос к бд у тебя 5-10мс, но вот метод который этот запрос вызвал на 5 наносекунд быстрее, это чем то поможет?

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

Не одними БД живут программисты.

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

Не все программы состоят из перевода результата sql в json ответ. Иногда перед, или после работы с БД методов вызывается намного больше чем сам ответ, иногда БД нету, иногда твой код это БД.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от kardapoltsev

Если скорость работы кода программы некритична (например, если это формирование запросов к БД), то не надо её писать на Си++.

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

Да, иногда программы ждут сеть, иногда диск… А из того что я вижу, с/с++ программисты заморачиваются на такты процессора. Всегда. Даже если прога – просто калькулятор. Да, иногда это важно, согласен.

kardapoltsev ★★★★★
()
Последнее исправление: kardapoltsev (всего исправлений: 1)
Ответ на: комментарий от lovesan

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

lovesan ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.