Более того, это вполне себе рабочий паттерн, когда владеющий код держит у себя unique_ptr, а в другие функции обьект передается по сырому поинтеру, явна разграничивая владение и использование.
Имхо в таких случаях правильнее передавать по ссылке, а не сырому поинтеру.
Такой json ничем принципиально не лучше, чем QML, и требует во-первых, написания нового движка, во-вторых, решения множества задач, которые в QML уже давно решены, таких как анимации, стили и переиспользуемые компоненты например.
Когда-то у нас в Liri Browser возникала подобная идея. Был даже план по реализации изоляции страниц, но до исполнения, кажется, так никто и не добрался.
Да, судя по примерам кода, которые PsyHaSTe тут приводит, он либо вообще не понимает, что такое reference, shared/unique_ptr, либо специально всех в заблуждение вводит.
Я имею в виду, что ошибки не ограничиваются падениями, независимо от того, продакшн это или нет. Если в программе произойдёт неожиданное деление на ноль или какой-нибудь ABA, она врядли упадёт, но и работать будет некорректно. Memory corruption и memory leak, между прочим, тоже редко приводят к падениям.
А в комментарии, на который я отвечал, Вы почему-то утождествляете ошибки и падения. В таком ключе SEGFAULT конечно естественным образом оказывается "корнем всех зол".
Ок, понял, речь идёт о случае, когда необходимо и продлить время жизни объекта, и передача владения объектом вызываемому коду не представляется возможной. В таком случае наверное модель раста и правда более эффективна.
В библиотеке, на которую я выше приводил ссылку, для этого дополнительный шаблонный параметр заведён. NamedType<int, struct wheels_count_tag> и NamedType<int, struct doors_count_tag> — уже разные типы.
3.
Добавлю ещё, что переопределение операторов для таких типов несёт дополнительный смысл: можно запретить операции, не имеющие смысла. Например, запретить умножать width на width, но разрешить умножать width на height, причём результатом такого умножения будет ещё один тип area.
б. force touch — не надо выискивать m1/m2 или поднимать палец (рискуя сдвинуть курсор), нажимаешь точно туда, куда навел
Такое сейчас у многих есть.
в. его жесты полезны и удобны в macos (да, на винде/линухе он теряет массу очков)
В GNOME Shell тоже много удобных multi-touch жестов для тачпада из коробки.
Ни в коем случае не берусь сравнивать тачпады маков и других ноутов (я тоже не фанат тачпадов как таковых), но по моим наблюдениям перечисленные преимущества у других производителей тоже есть.
Так и я о том же, было бы круто :)
А в чём смысл делать автоматические клепалки псевдослучайных последовательностей нот, как в статье — в упор не понимаю.
А сколько весит среднестатистический современный сайт на js-фреймворке?
Размер скомпилированных wasm-модулей из документации Qt.
Example
gzip
brotli
helloglwindow (QtCore + QtGui)
2.8M
2.1M
wiggly widget (QtCore + QtGui + QtWidgets)
4.3M
3.2M
SensorTag (QtCore + QtGui + QtWidgets + QtQuick + QtCharts)
8.6M
6.3M
Имхо в таких случаях правильнее передавать по ссылке, а не сырому поинтеру.
Такой json ничем принципиально не лучше, чем QML, и требует во-первых, написания нового движка, во-вторых, решения множества задач, которые в QML уже давно решены, таких как анимации, стили и переиспользуемые компоненты например.
Когда-то у нас в Liri Browser возникала подобная идея. Был даже план по реализации изоляции страниц, но до исполнения, кажется, так никто и не добрался.
Да, судя по примерам кода, которые PsyHaSTe тут приводит, он либо вообще не понимает, что такое reference, shared/unique_ptr, либо специально всех в заблуждение вводит.
Я имею в виду, что ошибки не ограничиваются падениями, независимо от того, продакшн это или нет. Если в программе произойдёт неожиданное деление на ноль или какой-нибудь ABA, она врядли упадёт, но и работать будет некорректно. Memory corruption и memory leak, между прочим, тоже редко приводят к падениям.
А в комментарии, на который я отвечал, Вы почему-то утождествляете ошибки и падения. В таком ключе SEGFAULT конечно естественным образом оказывается "корнем всех зол".
Этот код и в C++11 и 14 тоже работает.
Ок, понял, речь идёт о случае, когда необходимо и продлить время жизни объекта, и передача владения объектом вызываемому коду не представляется возможной. В таком случае наверное модель раста и правда более эффективна.
Большинство других ошибок можно поймать не падая, но разве они от этого перестают быть ошибками?
А зачем использовать shared_ptr там, где и в плюсах можно использовать ссылки?
И много людей на Devuan перешло?
Я бы сказал, сейчас де-факто стандартная платформа кроме этого включает PulseAudio и systemd как минимум.
В snap и flatpak тоже есть разрешения (см. interface для snap и portals для flatpak).
В библиотеке, на которую я выше приводил ссылку, для этого дополнительный шаблонный параметр заведён.
NamedType<int, struct wheels_count_tag>
иNamedType<int, struct doors_count_tag>
— уже разные типы.3.
Добавлю ещё, что переопределение операторов для таких типов несёт дополнительный смысл: можно запретить операции, не имеющие смысла. Например, запретить умножать width на width, но разрешить умножать width на height, причём результатом такого умножения будет ещё один тип area.
4.
А почему не просто
uint32_t сash{1000U};
?Такое сейчас у многих есть.
В GNOME Shell тоже много удобных multi-touch жестов для тачпада из коробки.
Ни в коем случае не берусь сравнивать тачпады маков и других ноутов (я тоже не фанат тачпадов как таковых), но по моим наблюдениям перечисленные преимущества у других производителей тоже есть.
Советую посмотреть на библиотеку NamedType.
А мне показывает 102 и 117 (Apple и Dell соответственно, по тем же ссылкам). Похоже, по регионам очень сильно варьируются цены.
Думаю, человек перепутал TFT и TN.
Так и я о том же, было бы круто :)
А в чём смысл делать автоматические клепалки псевдослучайных последовательностей нот, как в статье — в упор не понимаю.