All streams
Search
Write a publication
Pull to refresh
4
0.3

C++ разработчик

Send message

Для конкретной Ubuntu единственное преимущество snap/flatpak — это запуск приложений в песочнице.
Главная фишка этих форматов — кросс-дистрибутивность. Один раз собранное и упакованное приложение запустится в любом линуксе с установленным flatpak/snap.

С первого же комментария про Linux, от которого и идёт эта ветка. К разработке игр претензии его автора отношения практически не имеют.

Это от дистрибутива зависит. В некоторых система обновления держит последние три версии ядра для fallback, в некоторых какое-то другое количество, а в других старые версии вообще не держатся.

В apt-get install foobar apt-get — имя бинарника. Это называется не "постфиксы убрали", а "разработчики APT выпустили новую утилиту apt".

Как будто в этом есть что-то плохое...

Лично я сталкивался с приложениями, не работающими из-за слишком новой версии fontconfig. Наверняка с другими либами тоже бывают такие проблемы.


Просто решения типа snap/AppImage технически ужасны: тянуть все с собой и ставить бесконечное колличество идинаковых либ — печаль беда.

Насчёт AppImage согласен, а вот snap/flatpak — уже совсем другое дело, они предоставляют шаренные рантаймы и дедуплицируют одинаковые либы внутри пакетов.

Тут вроде бы речь о разработке игр, а это обычно Steam со своим рантаймом.

В недостатках CRTP


И вообще, у потомков есть публичные методы, которые нигде, кроме базового класса, использоваться не должны. Это нехорошо, но исправляется через дополнительный уровень абстракции (см. FTSE во второй части).

А что мешает писать так?


class Derived : Base<Derived>
{
private:
  friend Base<Derived>;
  void actionImpl() const { ... }
};

Кстати, имхо более перспективное направление, чем машинная композиция, но почему-то на эту тему особо не видел исследований.

Включен network.security.esni.enabled и network.trr.mode=2. Почти все заблокированные сайты работают без прокси и впн. Но это в России.

gcc -fno-exceptions насколько я понимаю будет вызывать abort. Чтобы вместо исключения new возвращал nullptr надо вызывать new(std::nothrow).

У меня вроде не сильно высокие запросы, но в QtCreator раздражает необходимость дважды нажимать Esc для выхода из режима вставки, а в IntelliJ — неправильная работа отмены (u). Вроде максимально базовые вещи, а уже работают не так, как в vim, причём однозначно в худшую сторону.

Мне кажется, что так как этот пример приводят в контексте геометрии, подразумевается, что единственный инвариант прямоугольника — сохранение прямых углов. И тогда квадрат от него наследовать нельзя, т.к. у него инвариантов больше.
Конечно, вариантов интерпретации может быть много, но это же чисто умозрительный пример, а не реальная задача.

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

И ещё, если бы список был длинным, я бы применил макрос ко всем строкам через Vi}:normal @w<Enter>, а не считал бы строки.

Записываю макрос копирования, перевода в верхний регистр и перехода на начало следующей строки. 2@w выполняет макрос ещё два раза. Затем копирую блок в фигурных скобках (можно было не переходить для этого в визуальный режим, это просто привычка), заменяю в скопированном блоке const test = на import (опять же, можно было сразу без него скопировать). Далее dWj.j. удаляет из каждой строки фрагмент до пробела. Ну и добавляю from './entity-base'.

Я бы как-то так делал:
jqwwwywWvlpvbgU0jq2@wV%yO<Esc>Pc3wimport<Esc>j^dWj.j.ja from './entity-base'

Ещё как вариант можно растягивать окно на два монитора :)

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

Information

Rating
2,332-nd
Location
Кипр
Date of birth
Registered
Activity