Так вроде ничего не случилось? Пропозал, насколько я понял, приняли еще летом. cppreference даже говорит, что в новых clang и gcc он уже реализован.
Просто фичу с навешиванием атрибутов на structured bindings трудно продемонстрировать на чем-то другом. Дело в том, что в самом стандарте есть только один атрибут, который имеет смысл так указывать - это как раз [[maybe_unused]]. Но фича нужна, в том числе, для вендорских атрибутов, не только для стандартных.
В пропозале про операции с насыщением про это говорится так:
Instead of free functions, it is conceivable to provide an integer-like class template with the arithmetic operators suitably overloaded. This would, however, make it impossible to adopt this proposal for C, and seems slightly over-engineered for a rather simple facility.
Кстати, если под проверками вы понимаете именно ветвления вроде if или тернарных операторов, то branchless-реализация возможна даже без применения специальных команд процессора. В тексте пропозала (на него есть ссылка в статье) есть ссылка на https://locklessinc.com/articles/sat_arithmetic/, где как раз описана такая реализация.
Сам стандарт никогда не регламентирует настолько низкоуровневые детали. Но, насколько я понимаю, эти функции добавляют в стандарт как раз для того, чтобы в языке был стандартный портируемый способ этими командами пользоваться.
Поэтому да, я думаю, что большинство реализаций стандартной библиотеки C++ на поддерживаемых архитектурах будут использовать соответствующие команды процессора. Как это сейчас есть для какого-нибудь std::popcount, например.
У любой статьи есть своя целевая аудитория. Статья про новые стандарты C++ ожидает, что читатель знаком с современным C++. Как мне кажется, это вполне логичное ожидание. А у такого человека не возникнет вопросов вроде:
Ну что за вредоносная привычка любителей плюсов классы называть структурами.
"Тут возвращается std::pair<CONST std::string, int>" - и что? Что должен понять читатель?
Объясните хотя бы что begin() - это не первое значение, не указатель на первое значение, а итератор, указывающий на первое значение.
В таком случае, это будет суммировано при сведении. На этом этапе, насколько я понимаю, как раз используются большие битности и частоты дискретизации; в "стадартные" 44.1 или 48 кГц звук ресемплится уже в самом конце производства.
Мясо привозят замороженное, да - но оно всё ещё сырое. Приготовить правильным способом в домашних условиях довольно сложно.
А если готовить другим методом - то вкус уже не тот. Но люди готовят, куча рецептов есть в интернете. Да и готовые такие продаются, просто называются обычно "ролл", а не "шаурма".
Судя по гитхабу, там под капотом SpiderMonkey - JS-движок из Firefox. Буду следить, если вдруг он и Bun (там JavaScriptCore, как в Safari) выживут - будет какая-то конкуренция для монополии V8 среди JS-бэкенда.
В языке было автоматическое управление памятью, но кроме нее хватает других ресурсов - открытые файлы, соединения с БД, подписки на события.
Плюс этот новый синтаксис даёт определенный детерминизм в том, когда ресурс будет освобождён, и что он будет освобождён вообще. Если надеяться только на сборщик мусора, то такого не получить - сравните вон в C#, к примеру, финализаторы (основаны полностью на GC) и Disposable.dispose().
Аналитика, насколько я понял по ссылке в статье, по траффику. В этом случае, сравнивать с 2gis кажется не совсем корректно, потому что он предзагружает карты заранее, поэтому паттерн использования траффика совсем другой. Посмореть бы аналитику по установкам приложений, например.
А еще интересно, как на долю яндекс карт влияет то, что они используются в яндекс такси - причем безальтернативно для водителей, насколько понимаю.
Если вам интересна эта тема, рекомендую видео из двух частей (раз, два) от канала Technology Connections. Там буквально разбор одной из машин с демонстрацией каждой функции и каждого реле.
Если учесть, что статья из песочницы, а также то, когда именно автор был более всего активен на Хабре, то, возможно, что статья и была написана где-то около 2009 года - просто из песочницы ее выпустили только сейчас. Но я точно не уверен, так ли работает дата публикации.
@MiraclePtr, не помните, случайно, какая дата была у статьи в песочнице?
В первых версиях JavaScript не было исключений. Поэтому доступ к несуществующему полю должен был вернуть хоть какое-то значение. null для этой цели не подходил потому, что требовалось, чтобы он вел себя максимально похоже на Java. Поэтому ввели значение-заглушку. undefined тогда даже не было ключевым словом - это было буквально имя переменной, которой договорились ничего не присваивать, чтобы при доступе к ней всегда возвращалось это самое значение-заглушку. В спеке ECMAScript это до сих пор не ключевое слово, а именно глобальная переменная - просто ее сделали доступной только для чтения.
Так вроде ничего не случилось? Пропозал, насколько я понял, приняли еще летом. cppreference даже говорит, что в новых clang и gcc он уже реализован.
Просто фичу с навешиванием атрибутов на structured bindings трудно продемонстрировать на чем-то другом. Дело в том, что в самом стандарте есть только один атрибут, который имеет смысл так указывать - это как раз
[[maybe_unused]]. Но фича нужна, в том числе, для вендорских атрибутов, не только для стандартных.В пропозале про операции с насыщением про это говорится так:
Кстати, если под проверками вы понимаете именно ветвления вроде
ifили тернарных операторов, то branchless-реализация возможна даже без применения специальных команд процессора. В тексте пропозала (на него есть ссылка в статье) есть ссылка на https://locklessinc.com/articles/sat_arithmetic/, где как раз описана такая реализация.Сам стандарт никогда не регламентирует настолько низкоуровневые детали. Но, насколько я понимаю, эти функции добавляют в стандарт как раз для того, чтобы в языке был стандартный портируемый способ этими командами пользоваться.
Поэтому да, я думаю, что большинство реализаций стандартной библиотеки C++ на поддерживаемых архитектурах будут использовать соответствующие команды процессора. Как это сейчас есть для какого-нибудь
std::popcount, например.У любой статьи есть своя целевая аудитория. Статья про новые стандарты C++ ожидает, что читатель знаком с современным C++. Как мне кажется, это вполне логичное ожидание. А у такого человека не возникнет вопросов вроде:
В таком случае, это будет суммировано при сведении. На этом этапе, насколько я понимаю, как раз используются большие битности и частоты дискретизации; в "стадартные" 44.1 или 48 кГц звук ресемплится уже в самом конце производства.
Мясо привозят замороженное, да - но оно всё ещё сырое. Приготовить правильным способом в домашних условиях довольно сложно.
А если готовить другим методом - то вкус уже не тот. Но люди готовят, куча рецептов есть в интернете. Да и готовые такие продаются, просто называются обычно "ролл", а не "шаурма".
На том бенчмарке, что там есть - я вполне верю: там код, который просто отвечает "hello" на любой HTTP-запрос.
Более реалистичные замеры были бы интересны, да.
Если правильно вас понял, то сейчас так проще всего сделать с quickjs - его уже довольно давно скомпилировали в WASM.
Или просто делать
eval()или vm из ноды, если код доверенный.Судя по гитхабу, там под капотом SpiderMonkey - JS-движок из Firefox. Буду следить, если вдруг он и Bun (там JavaScriptCore, как в Safari) выживут - будет какая-то конкуренция для монополии V8 среди JS-бэкенда.
В языке было автоматическое управление памятью, но кроме нее хватает других ресурсов - открытые файлы, соединения с БД, подписки на события.
Плюс этот новый синтаксис даёт определенный детерминизм в том, когда ресурс будет освобождён, и что он будет освобождён вообще. Если надеяться только на сборщик мусора, то такого не получить - сравните вон в C#, к примеру, финализаторы (основаны полностью на GC) и
Disposable.dispose().Аналитика, насколько я понял по ссылке в статье, по траффику. В этом случае, сравнивать с 2gis кажется не совсем корректно, потому что он предзагружает карты заранее, поэтому паттерн использования траффика совсем другой. Посмореть бы аналитику по установкам приложений, например.
А еще интересно, как на долю яндекс карт влияет то, что они используются в яндекс такси - причем безальтернативно для водителей, насколько понимаю.
Если вам интересна эта тема, рекомендую видео из двух частей (раз, два) от канала Technology Connections. Там буквально разбор одной из машин с демонстрацией каждой функции и каждого реле.
Если учесть, что статья из песочницы, а также то, когда именно автор был более всего активен на Хабре, то, возможно, что статья и была написана где-то около 2009 года - просто из песочницы ее выпустили только сейчас. Но я точно не уверен, так ли работает дата публикации.
@MiraclePtr, не помните, случайно, какая дата была у статьи в песочнице?
en.wiktionary.org/wiki/stakeholder
Не думаю, что кешируется что-то, кроме скомпилированного кода. Похоже, оптимизатор LLVM просто догадался, что эту функцию можно переписать без цикла.
Пример неудачный -
as constможно использовать только для compile-time констант, для данных с бекенда он ничем не поможет.Тут лучше подойдут стандартные
ParametersиReturnType.По ссылке в этом же абзаце описаны причины (раздел "Why are the requirements being changed?").
В первых версиях JavaScript не было исключений. Поэтому доступ к несуществующему полю должен был вернуть хоть какое-то значение. null для этой цели не подходил потому, что требовалось, чтобы он вел себя максимально похоже на Java. Поэтому ввели значение-заглушку. undefined тогда даже не было ключевым словом - это было буквально имя переменной, которой договорились ничего не присваивать, чтобы при доступе к ней всегда возвращалось это самое значение-заглушку. В спеке ECMAScript это до сих пор не ключевое слово, а именно глобальная переменная - просто ее сделали доступной только для чтения.