Size: a a a

2020 July 13

f&

fox.py &>/dev... in C++ Together 2.0
union wtf {
 int a;
 char b[4];
 float c;
} my_var;
my_var.a = 27654743;
std::cout << my_var.b; // выведет мусор
источник

CC

Cool Cooler in C++ Together 2.0
Cool Cooler
люблю штуки, дающие свободу
и не юзаю private ваще
источник

CC

Cool Cooler in C++ Together 2.0
чувствую, мне Union понравится
источник

CC

Cool Cooler in C++ Together 2.0
fox.py &>/dev/null
union wtf {
 int a;
 char b[4];
 float c;
} my_var;
my_var.a = 27654743;
std::cout << my_var.b; // выведет мусор
не понял прикола
а разве
char b[4];
std::cout << b;

не выведет мусор?
источник

f&

fox.py &>/dev... in C++ Together 2.0
Cool Cooler
чувствую, мне Union понравится
источник

f&

fox.py &>/dev... in C++ Together 2.0
Cool Cooler
не понял прикола
а разве
char b[4];
std::cout << b;

не выведет мусор?
в b[4] будут те же данные, что в a
источник

f&

fox.py &>/dev... in C++ Together 2.0
все равно, что память скопируешь.
источник

🦊

🦊fox.cpp in C++ Together 2.0
Cool Cooler
не понял прикола
а разве
char b[4];
std::cout << b;

не выведет мусор?
прикол в том, что int, char и float находятся по одному адресу и используют одну память
источник

f&

fox.py &>/dev... in C++ Together 2.0
только без копирования.
источник

f&

fox.py &>/dev... in C++ Together 2.0
🦊fox.cpp
прикол в том, что int, char и float находятся по одному адресу и используют одну память
угу
источник

🦊

🦊fox.cpp in C++ Together 2.0
цивильное использование - написание оберток типов "один из X"
источник

f&

fox.py &>/dev... in C++ Together 2.0
🦊fox.cpp
цивильное использование - написание оберток типов "один из X"
std::string в libcxx
источник

🦊

🦊fox.cpp in C++ Together 2.0
да, без выделения памяти для сразу всех вариантов
источник

🦊

🦊fox.cpp in C++ Together 2.0
🦊fox.cpp
цивильное использование - написание оберток типов "один из X"
в стдлибе C++17 принесли типо-безопасную обертку для union для этого, std::variant
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
прикол в том, что int, char и float находятся по одному адресу и используют одну память
аааа
источник

CC

Cool Cooler in C++ Together 2.0
круто
источник

🦊

🦊fox.cpp in C++ Together 2.0
грязное и страшное использование - подстановка байтового представления одного типа в другой
источник

CC

Cool Cooler in C++ Together 2.0
буду юнионы с unsigned char внутри использовать для случаев, когда надо % 256
источник

CC

Cool Cooler in C++ Together 2.0
хотя вдруг у другого чувака будет комп big-endian...
источник

f&

fox.py &>/dev... in C++ Together 2.0
Cool Cooler
хотя вдруг у другого чувака будет комп big-endian...
:)))
источник