Русский
Открыть в Telegram

Пост Я в очередной раз искал медь, а нашел золото.

28 сентября 2026
C
C++: Хроники Дурки🚑
Я в очередной раз искал медь, а нашел золото. Я чуть-чуть погрузился в bit_cast. Ввели такой в С++20 каст побитовый. Он передает бит к биту из одного объекта в другой. Условия просты: ``` sizeof(To) == sizeof(From) is true; is_trivially_copyable_v<To> is true; and is_trivially_copyable_v<From> is true. ``` И я искал воспроизводящий пример как он ведет себя с padding byte и ломается ли у нас что-то (если у вас такой есть - несите в предложку). Но наткнулся на вот такой веселый пример. struct alignas(int) Empty {}; static_assert(sizeof(Empty) == sizeof(int)); int main() { const int x = std::bit_cast<int>(Empty{}); std::printf("%d %d", x == 0, x != 0); } И у нас clang весело выводит 0 0 x и равен нулю, и неравен нулю (оба сравнения false). И если вы думаете, что на этом все закончено, то нет. Если убрать флаг -O2 из флагов компиляции, вывод будет 0 1 А в gcc вывод с O2 и без O2 выглядят так 1 0 0 1 Кароче, bit_cast временно вычеркиваю из инструментов до дальнейшего разбирательства.
27 · 718 ·

Рядом в ленте

CC++: Хроники Дурки🚑Всяко разное болезненное есть в С++, из всего болезненного одно из самых болезненных - это friend функции. Если жизнь и рассудок дороги вам - не объявляйте такиCC++: Хроники Дурки🚑Мошенники заставили пенсионерку из Москвы переписать квартиру на Rust
это сообщение
CC++: Хроники Дурки🚑Ковырял тут вот эту библиотеку: https://github.com/yandex/yaff/blob/c815bc0a2469201542c4734257628a98ed794c30/include/yaff/base.h#L146-L160 Это высокопроизводитеCC++: Хроники Дурки🚑Делюсь бесполезными знаниями. На x86 код counter.fetch_add(1, std::memory_order_relaxed); И counter.fetch_add(1); Выполняются одинакого быстро. Это бесполезное

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем