170 похожих чатов

Std::Variant не вариант?

17 ответов

38 просмотров

Я хотел попроще сделать, без лишних оберток и инклюдов

union move_ty { bitset <2> bs2; bitset <3> bs3; bitset <4> bs4; bitset <5> bs5; }; Это ты считаешь проще ? У тебя этот тип хранит от 2 до 5 бит. Это же может хранить std::bitset <5> Кроме этого, у тебя там UB - надо сначала что-то записать в один из членов UNION, только потом можно читать. Ты не пишешь.

Ilya Zviagin
union move_ty { bitset <2> bs2; bitset <3> bs3...

У меня поле класса 0м инициализируется

М
У меня поле класса 0м инициализируется

Это, возможно, тоже UB, но я не уверен. В любом случае, ты инициализируешь ОДИН член данных, а видимо читать хочешь из любого из них, в зависимости от вызова operator []

Ilya Zviagin
Это, возможно, тоже UB, но я не уверен. В любом с...

Такой вот небезопасный код, получается

М
У меня поле класса 0м инициализируется

Главное, не понятна сама идея. Вот если бы ты просто напихал туда 5 битиков - я б понял. Просто положил бы туда bitset<5> - я б понял. Тут -то какая идея, нахрена тут union ?

Ilya Zviagin
Это, возможно, тоже UB, но я не уверен. В любом с...

Ну, на самом деле, для битсета это не так страшно, просто более старшие биты будут нулями и все

М
Ну, на самом деле, для битсета это не так страшно,...

Ещё раз, ты не имеешь права читать ни один другой член union, кроме проинициализированного.

Ilya Zviagin
Ещё раз, ты не имеешь права читать ни один другой ...

Потому я и говорю тут будет вероятно UB и непонятные багт

Aniki Hi$ok@ 🌈 Z 🐀
я так делал, с простыми типами работало

Сейчас приедет полиция типобезопасного программирования же, аккуратнее

М
Сейчас приедет полиция типобезопасного программиро...

но действительно очень мерзкая тема, лучше тестами покрыть, что читается из такого union все правильно

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта