P1967 #embed и D2752 «Статическое хранилище для initializer_list» теперь находятся в Compiler Explorer.
https://quuxplusone.github.io/blog/2023/01/13/embed-and-initializer-lists/
https://quuxplusone.github.io/blog/2023/01/13/embed-and-initializer-lists/
quuxplusone.github.io
P1967 #embed and D2752 “Static storage for initializer_list” are now on Compiler Explorer
C++26 has adopted JeanHeyd Meneide’s proposal P1967 “#embed”,
which will allow C++ (and C) programmers to replace their use of the xxd -i utility
with a built-in C preprocessor directive:
unsigned char favicon_bytes[] = {
#embed "favicon.ico"
};
which will allow C++ (and C) programmers to replace their use of the xxd -i utility
with a built-in C preprocessor directive:
unsigned char favicon_bytes[] = {
#embed "favicon.ico"
};
🎯✏️ Реализация #embed для C и C++
Речь пойдет о реализации директивы бинарного включения данных в gcc и clang для C и C++.
Автор опишет способ, которым реализовал #embed для GCC и Clang, и стиль работы, который использовал для ранней версии #embed. Будет использоваться общедоступная версия #embed, которая предложена Clang, в качестве инструмента для отображения одного из используемых методов, позволяющих получить гарантированное ускорение для подмножества случаев, которые имеют значение (например, инициализация массива char/signed char/unsigned char).
Изучить материал
#гайд
Речь пойдет о реализации директивы бинарного включения данных в gcc и clang для C и C++.
Автор опишет способ, которым реализовал #embed для GCC и Clang, и стиль работы, который использовал для ранней версии #embed. Будет использоваться общедоступная версия #embed, которая предложена Clang, в качестве инструмента для отображения одного из используемых методов, позволяющих получить гарантированное ускорение для подмножества случаев, которые имеют значение (например, инициализация массива char/signed char/unsigned char).
Изучить материал
#гайд
🔥4👏2👍1
😱 Что нового в C++26: итоги встречи ISO в Хагенберге
💡 В середине февраля в Хагенберге прошла встреча комитета по стандартизации C++, на которой были приняты серьёзные изменения для C++26.
🔧 Ключевые нововведения стандарта:
• std::hive — новый контейнер для игровой индустрии, который не инвалидирует итераторы при вставке/удалении;
• контракты в духе pre/post условий — теперь можно явно указывать требования к входным данным и гарантии функций;
• тривиальное перемещение объектов через std::memmove без вызова конструкторов и деструкторов;
• директива #embed для встраивания содержимого файлов прямо в бинарник.
Основной фокус изменений направлен на повышение безопасности кода и производительности, особенно в критически важных сценариях использования.
Особенно интересно будет разработчикам, работающим над производительными системами, геймдевом и проектами с высокими требованиями к безопасности кода.
Стандарт C++26 всё ближе, и хотя в нём может появиться ещё и рефлексия, некоторые ожидаемые функции (например, pattern matching) придётся подождать. Самое время начать изучать новые возможности, чтобы быть готовым к их использованию.
«Опять новый стандарт? Я ещё C++20 толком не освоил!» — такие комментарии часто встречаются в чатах C++ разработчиков при обсуждении грядущих изменений языка.
💡 В середине февраля в Хагенберге прошла встреча комитета по стандартизации C++, на которой были приняты серьёзные изменения для C++26.
🔧 Ключевые нововведения стандарта:
• std::hive — новый контейнер для игровой индустрии, который не инвалидирует итераторы при вставке/удалении;
• контракты в духе pre/post условий — теперь можно явно указывать требования к входным данным и гарантии функций;
• тривиальное перемещение объектов через std::memmove без вызова конструкторов и деструкторов;
• директива #embed для встраивания содержимого файлов прямо в бинарник.
Основной фокус изменений направлен на повышение безопасности кода и производительности, особенно в критически важных сценариях использования.
Особенно интересно будет разработчикам, работающим над производительными системами, геймдевом и проектами с высокими требованиями к безопасности кода.
Стандарт C++26 всё ближе, и хотя в нём может появиться ещё и рефлексия, некоторые ожидаемые функции (например, pattern matching) придётся подождать. Самое время начать изучать новые возможности, чтобы быть готовым к их использованию.
🔥25🥱4👍2⚡1