Обновить

ncpp: Как создать самодостаточную экосистему на С++98 в 2026 году, которая запустится даже на железе со свалки

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели11K
Всего голосов 13: ↑10 и ↓3+9
Комментарии8

Комментарии 8

Всё ещё не понятно, зачем? Зачем брать железо со свалки и linux 2.6 в 2026 году и страдать, вместо нормальных инструментов? Неужели ваше время настолько дёшево, что оно дешевле нормального железа?

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

Глянул репозиторий. Не знаю как остальным - мне не понравилось. Смотрел файлы из подкаталога net. Много кода в одну строку, это стиль такой? Дальше логика замешана с абстракциями разных платформ, WIN32 и Linux - все одной сплошной стеной, в одном файле.
Кстати, почему только Linux, а где BSD, MacOS? И epoll не всегда лучший вариант - по мне правильнее было бы предоставить пользователю выбрать какой мультиплексор ему больше подойдет.
PS. Move для C++98 пишется не так - текущая реализация просто опасна. Пример хорошей реализации move-семантики для C++98/03 cм. здесь.

Согласен по поводу стиля. Не люблю придираться по этому поводу, но увы, он ужасен.

Ещё мне непонятен момент включения .cpp файлов как заголовочных. А если расписать все нюансы репозитория то получится текст больше чем эта статья.

Было бы любопытно услышать расширенный список “нюансов”, если конечно будет время и желание.

Начните со стиля.

проект же предлагает использовать CamelCase для более удобного восприятия кода

Если верить некоторым исследованиям, то snake_case требует чуть меньше зрительных усилий, чем CamelCase. Особенно хорошо это демонстрирует пример с IHateIbm (i_hate_ibm).

Зачем вшивать opengl32.dll в бинарник? Просто положите его рядом.
Если, вдруг кому-то надо решить проблемы совместимости, он либо положит свой opengl32.dll, либо навесит hook на загрузку dll и пропатчит реализацию нужных функций.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации