Size: a a a

2020 March 25

Т8

Т-34 85 in rust_offtopic
Mikail Bagishov
Foo - это пустая (или почти пустая) структура, которая тупо является меткой енума
а где идентификатор?
https://t.me/rust_offtopic/207491
источник

Т8

Т-34 85 in rust_offtopic
Mikail Bagishov
Свитчимся например через std::visit
а можно пример? Подозреваю, что это если и возможно, то будет выглядеть черезжопно
источник

Т8

Т-34 85 in rust_offtopic
и никто в здравом уме так писать не станет
источник

MB

Mikail Bagishov in rust_offtopic
Я же привел эквивалентное выражение.
Создаем Foo, дальше по нему конструируем VariantType
источник

MB

Mikail Bagishov in rust_offtopic
Т-34 85
а можно пример? Подозреваю, что это если и возможно, то будет выглядеть черезжопно
Мб в C++29 подсыпят сахарка
источник

Т8

Т-34 85 in rust_offtopic
ну, кроме апологетов ФП, каким-то образом попавших в плюсы
источник

MB

Mikail Bagishov in rust_offtopic
(Импортируют растовые енумы)
источник

MB

Mikail Bagishov in rust_offtopic
Ну а так да, пока это похоже на изврат
источник

MB

Mikail Bagishov in rust_offtopic
Я бы это не писал
источник
2020 March 26

Т8

Т-34 85 in rust_offtopic
Mikail Bagishov
Я же привел эквивалентное выражение.
Создаем Foo, дальше по нему конструируем VariantType
это не эквивалентное выражение. Foo должен быть идентификатором члена энама с некоторым типом, например, int64_t
источник

MB

Mikail Bagishov in rust_offtopic
Но возвращаясь к тему enum vs union: имхо, главное отличие - хранится ли дискриминант. То есть знает ли тип, что именно в нем лежит
источник

MB

Mikail Bagishov in rust_offtopic
Т-34 85
это не эквивалентное выражение. Foo должен быть идентификатором члена энама с некоторым типом, например, int64_t
Foo это название структуры Foo.
Foo {} - создание такой структуры.
VariantType(Foo {}) - это штука, которую можно обозначить за VariantType::Foo,
источник

AZ

Alex Zhukovsky in rust_offtopic
Emmanuel Goldstein
Rust — Box<dyn Any>
Go — interface{}
C/++ — void*
Haskell — Data.Dynamic
Я тоже так могу.
нет, в хаскелле и расте например не злоупотребляют этим
источник

AZ

Alex Zhukovsky in rust_offtopic
в этом и юмор
источник

Т8

Т-34 85 in rust_offtopic
Mikail Bagishov
Foo это название структуры Foo.
Foo {} - создание такой структуры.
VariantType(Foo {}) - это штука, которую можно обозначить за VariantType::Foo,
нет, ты не понял. Я про

enum VariantType
{
   Foo /*0*/,
   Bar /*1*/
};
источник

MB

Mikail Bagishov in rust_offtopic
А, типа сопоставлять разным вариантам разные числа?
источник

Т8

Т-34 85 in rust_offtopic
Mikail Bagishov
А, типа сопоставлять разным вариантам разные числа?
ну так это кагбэ суть энама
источник

MB

Mikail Bagishov in rust_offtopic
Это не нужно. При желании, пишем функцию as_int(), и from_int()
источник

MB

Mikail Bagishov in rust_offtopic
Т-34 85
ну так это кагбэ суть энама
Ну нет, посмотри на раст опять же
источник

Т8

Т-34 85 in rust_offtopic
Mikail Bagishov
Это не нужно. При желании, пишем функцию as_int(), и from_int()
ахаха, вот так всегда
источник