Много ли людей таскали с собой заранее заряженный аккумулятор даже когда аккумуляторы были съемные, а зарядки -- невероятно медленные?
Быстро заменить севший аккумулятор на заряженный -- очень неудобная на практике возможность. Вот без проблем самостоятельно заменить деградировавший аккумулятор на новый -- это совсем другой сценарий.
Современная финансовая система страшно медленная потому, что такие действия как перевод средств обросли кучей проверок на соответствие законодательству, на чистоту происхождения средств, отправителя и получателя и т. п. И все эти проверки появились не просто так. Насколько эти проверки обоснованы с точки зрения бизнеса -- совсем другой разговор.
Криптовалюта быстрее в первую очередь потому, что она ходит мимо этих проверок.
То есть это как отдать работнику зарплату в конверте и радоваться, что все прошло быстрее и проще без этих лишних налоговых, трудовых, пенсионных и прочих дармоедов, да и сам работник на руки получил больше.
Но с точки зрения работы экономики в целом и финансовых институтов в частности, переводы криптовалютой это банальный уход в серую или даже черную зону.
Зачем где-то? Вон прямо на сайте Сбербанка прямо написано, что вход рубль выход два слиток золота например 50 г можно купить за 350к, а продать за 300к.
Никаких гарантий ни на что, в том числе и что вы не забудете добавить новое поле в список инициализации или что вызывающий код не аллоцирует "объект" через malloc().
Если вам кажется, что в вашем случае нужно конструктор, то пишите конструктор. Но при использовании небольшой структуры фигурные скобки достаточная гарантия, что конкретно с этим объектом в отладчике развлекаться не придется.
Я конкретно этот момент и прокомментировал -- нет, если в агрегате лежат не только объекты, но и простые типы, T{} все равно отработкет как и задумано.
К слову, контейнеры стандартной библиотеки тоже выполняют value initialization, так что и за вызывающий код в виде std::vector или std::map можно не переживать.
Пластины винчестера вращаются независимо от того, перезаписывается он, просто читается или вовсе бездействует (если бездействует долго, то можно остановить, но это отдельная история со своими нюансами).
Так что как минимум подшипникам все равно как часто будут перезаписаны данные.
The first time you build and run the project this way, it will download a prebuilt shared library for the Dawn native WebGPU implementation automatically <...> Optionally, Dawn can be built from scratch with gpu.cpp <...> However, this is recommended for advanced users only. Building Dawn dependencies with cmake takes much longer than using the precompiled Dawn shared library.
В наше-то время предлагать выполнять автоматически скачиваемый неизвестно откуда бинарник >___<.
Если начинающие программисты будут думать что массивы в C++ это std::array и std::vector, а T[] это такая штука из далекого прошлого примерно как register или std::auto_ptr, то всем будет только лучше.
FFmpeg тоже нельзя. Либо вы не замечаете погрешности, либо граница удачно попадает на опорный кадр.
Проблема в том, что практически в любом видео для декодирования кадра нужен как минимум предыдущий опорный кадр, а в некоторых случаях еще и следующий. Чтобы и включить нужные кадры в файл, и при этом не воспроизводить лишние, нужна возможность в файле оставить пометки сколько видео надо пропустить в начале и конце.
Причем такая функциональность должна поддерживаться форматом файла-контейнера, FFmpeg, большинством плееров и пр. Последний раз когда я пытался копировать отрезки из видео где-то лет пять назад, я ничего похожего не нашел.
Начало, а в некоторых случаях даже конец видеоряда нельзя обрезать в произвольном месте, так что Handbrake скорее всего реализовали более общий случай и не стали заморачиваться с частными.
для кодировщиков на базе QSV (Intel Quick Sync Video) метод управления битретом по умолчанию изменён с VBR (переменный битрейт) на CQP (постоянный битрейт)
CQP это постоянное качество (Constant Quantization Parameter), в зависимости от кодируемого видео это может ещё более переменный битрейт, чем VBR.
Проблема с наименованием тут в том, что логика прослеживается если знать историю появления этих типов и особенности принятия решений комитетом. Без этого контекста набор из этих трех типов выглядит как WTF.
Помимо SSO, там еще есть поддержка специализаций const/&/&&. В целом std::copyable_function -- это исправленный std::function. В определенной мере было бы даже логичнее назвать новый тип std::function2 и не морочить людям голову.
Или как минимум сразу же задепрекейтить старый std::function, но судя по std::thread и std::jthread этого не будет.
То, что он пока еще непринятый -- это софистика. std::jthread приняли, оставив std::thread как есть, и этот примут.
Если бы были только типы std::copyable_function и std::move_only_function, то все было бы в порядке. Но получается так, что в стандартной библиотеке на равных правах сосуществуют три типа:
std::function
std::copyable_function
std::move_only_function
И вот тут уже названия становятся понятными только тем, кто знает историю их появления и/или ход мыслей комитета.
Много ли людей таскали с собой заранее заряженный аккумулятор даже когда аккумуляторы были съемные, а зарядки -- невероятно медленные?
Быстро заменить севший аккумулятор на заряженный -- очень неудобная на практике возможность. Вот без проблем самостоятельно заменить деградировавший аккумулятор на новый -- это совсем другой сценарий.
Современная финансовая система страшно медленная потому, что такие действия как перевод средств обросли кучей проверок на соответствие законодательству, на чистоту происхождения средств, отправителя и получателя и т. п. И все эти проверки появились не просто так. Насколько эти проверки обоснованы с точки зрения бизнеса -- совсем другой разговор.
Криптовалюта быстрее в первую очередь потому, что она ходит мимо этих проверок.
То есть это как отдать работнику зарплату в конверте и радоваться, что все прошло быстрее и проще без этих лишних налоговых, трудовых, пенсионных и прочих дармоедов, да и сам работник на руки получил больше.
Но с точки зрения работы экономики в целом и финансовых институтов в частности, переводы криптовалютой это банальный уход в серую или даже черную зону.
Покупка золота не облагается НДС с 2022 года.
Зачем где-то? Вон прямо на сайте Сбербанка прямо написано, что
вход рубль выход дваслиток золота например 50 г можно купить за 350к, а продать за 300к.https://www.sberbank.com/ru/person/metall
Это где это вы VPS по $0.8 в месяц нашли?
Никаких гарантий ни на что, в том числе и что вы не забудете добавить новое поле в список инициализации или что вызывающий код не аллоцирует "объект" через malloc().
Если вам кажется, что в вашем случае нужно конструктор, то пишите конструктор. Но при использовании небольшой структуры фигурные скобки достаточная гарантия, что конкретно с этим объектом в отладчике развлекаться не придется.
Я конкретно этот момент и прокомментировал -- нет, если в агрегате лежат не только объекты, но и простые типы, T{} все равно отработкет как и задумано.
К слову, контейнеры стандартной библиотеки тоже выполняют value initialization, так что и за вызывающий код в виде std::vector или std::map можно не переживать.
T foo{}; гарантированно зануляет простые типы.
Вот если вы наоборот добавите конструктор, но не упомянете в нем эти поля -- тогда да, они не будут инициализированы.
Грамматика более простая и строгая, легче парсить и анализировать.
Пластины винчестера вращаются независимо от того, перезаписывается он, просто читается или вовсе бездействует (если бездействует долго, то можно остановить, но это отдельная история со своими нюансами).
Так что как минимум подшипникам все равно как часто будут перезаписаны данные.
В наше-то время предлагать выполнять автоматически скачиваемый неизвестно откуда бинарник >___<.
Если решать недостаток новых рабочих рук исключительно автоматизацией, можно пройти точку невозврата в отдельно взятом социуме.
Одна фабрика на всю планету это как минимум ненадёжно.
Есть карты с шестизначным пином =).
Если начинающие программисты будут думать что массивы в C++ это std::array и std::vector, а T[] это такая штука из далекого прошлого примерно как register или std::auto_ptr, то всем будет только лучше.
FFmpeg тоже нельзя. Либо вы не замечаете погрешности, либо граница удачно попадает на опорный кадр.
Проблема в том, что практически в любом видео для декодирования кадра нужен как минимум предыдущий опорный кадр, а в некоторых случаях еще и следующий. Чтобы и включить нужные кадры в файл, и при этом не воспроизводить лишние, нужна возможность в файле оставить пометки сколько видео надо пропустить в начале и конце.
Причем такая функциональность должна поддерживаться форматом файла-контейнера, FFmpeg, большинством плееров и пр. Последний раз когда я пытался копировать отрезки из видео где-то лет пять назад, я ничего похожего не нашел.
Начало, а в некоторых случаях даже конец видеоряда нельзя обрезать в произвольном месте, так что Handbrake скорее всего реализовали более общий случай и не стали заморачиваться с частными.
CQP это постоянное качество (Constant Quantization Parameter), в зависимости от кодируемого видео это может ещё более переменный битрейт, чем VBR.
Проблема с наименованием тут в том, что логика прослеживается если знать историю появления этих типов и особенности принятия решений комитетом. Без этого контекста набор из этих трех типов выглядит как WTF.
Помимо SSO, там еще есть поддержка специализаций const/&/&&. В целом
std::copyable_function
-- это исправленныйstd::function
. В определенной мере было бы даже логичнее назвать новый типstd::function2
и не морочить людям голову.Или как минимум сразу же задепрекейтить старый
std::function
, но судя поstd::thread
иstd::jthread
этого не будет.То, что он пока еще непринятый -- это софистика.
std::jthread
приняли, оставивstd::thread
как есть, и этот примут.Если бы были только типы
std::copyable_function
иstd::move_only_function
, то все было бы в порядке. Но получается так, что в стандартной библиотеке на равных правах сосуществуют три типа:std::function
std::copyable_function
std::move_only_function
И вот тут уже названия становятся понятными только тем, кто знает историю их появления и/или ход мыслей комитета.