Size: a a a

2020 August 06

EG

Emmanuel Goldstein in rust_offtopic
Я был удивлён, когда узнал
источник

B

Bogdan in rust_offtopic
лол, показывает правильынй ответ

В викторина
источник

EG

Emmanuel Goldstein in rust_offtopic
Bogdan
лол, показывает правильынй ответ

В викторина
После того, как ты ответишь же
источник

B

Bogdan in rust_offtopic
я точно помню что путой енам это плохо в рутономиконе пишут

и при этом winapi-rs крейт юзает таки пустой енам
источник

EG

Emmanuel Goldstein in rust_offtopic
Bogdan
я точно помню что путой енам это плохо в рутономиконе пишут

и при этом winapi-rs крейт юзает таки пустой енам
Пустой энум это ок, он много где используется
источник

EG

Emmanuel Goldstein in rust_offtopic
Но об него просто получить уб в ансейф-коде
источник

B

Bogdan in rust_offtopic
Emmanuel Goldstein
Пустой энум это ок, он много где используется
циатака из рутсономикона:


We recommend against modelling C's void* type with *const Void. A lot of people started doing that but quickly ran into trouble because Rust doesn't really have any safety guards against trying to instantiate empty types with unsafe code, and if you do it, it's Undefined Behaviour. This was especially problematic because developers had a habit of converting raw pointers to references and &Void is also Undefined Behaviour to construct.

https://doc.rust-lang.org/nomicon/exotic-sizes.html#empty-types
источник

EG

Emmanuel Goldstein in rust_offtopic
Bogdan
циатака из рутсономикона:


We recommend against modelling C's void* type with *const Void. A lot of people started doing that but quickly ran into trouble because Rust doesn't really have any safety guards against trying to instantiate empty types with unsafe code, and if you do it, it's Undefined Behaviour. This was especially problematic because developers had a habit of converting raw pointers to references and &Void is also Undefined Behaviour to construct.

https://doc.rust-lang.org/nomicon/exotic-sizes.html#empty-types
Ну я про это же
источник

EG

Emmanuel Goldstein in rust_offtopic
Emmanuel Goldstein
Переслано от Emmanuel Goldstein
Что такое `core::ffi::c_void`?
Анонимная викторина
14%
Алиас примитивного типа
36%
Юнит-структура
7%
Структура с одним полем
0%
Структура с двумя полями
14%
Пустой энум
0%
Энум с одним вариантом
29%
Энум с двумя вариантами
Проголосовало: 14
Я раньше думал так же, как большинство ответивших
источник

B

Bogdan in rust_offtopic
N.B., for LLVM to recognize the void pointer type and by extension
   functions like malloc(), we need to have it represented as i8* in
   LLVM bitcode. The enum used here ensures this and prevents misuse
   of the "raw" type by only having private variants. We need two
   variants, because the compiler complains about the repr attribute
   otherwise and we need at least one variant as otherwise the enum
   would be uninhabited and at least dereferencing such pointers would
   be UB.


хм, а в винапи крейте не подхватили(
источник

В

Вафель in rust_offtopic
Emmanuel Goldstein
Переслано от Emmanuel Goldstein
Что такое `core::ffi::c_void`?
Анонимная викторина
14%
Алиас примитивного типа
36%
Юнит-структура
7%
Структура с одним полем
0%
Структура с двумя полями
14%
Пустой энум
0%
Энум с одним вариантом
29%
Энум с двумя вариантами
Проголосовало: 14
O_o я думал пустой енам

прикольно
источник

Т8

Т-34 85 in rust_offtopic
спасибо за ссылку. Видимо, придётся вернуться на gcc, такого рода фокусы нельзя допускать
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
лоусе интереснее кмк
хз, нет. Кстати она была моим аватаром
источник

AZ

Alex Zhukovsky in rust_offtopic
Т-34 85
спасибо за ссылку. Видимо, придётся вернуться на gcc, такого рода фокусы нельзя допускать
ну да, в гцц есть обратно-совместимые уб
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
хз, нет. Кстати она была моим аватаром
А как же принц?
источник

AZ

Alex Zhukovsky in rust_offtopic
я когда услышал об этом орал так что стена чуть не слетела
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
А как же принц?
он у меня был копателем и принимателем лещей
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
ну да, в гцц есть обратно-совместимые уб
это ещё что такое?
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
ну да, в гцц есть обратно-совместимые уб
Это что такое
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
Это что такое
это когда в новой версии разрабы гцц проверяют что УБ компилится так же как в предыдущей версии
источник