Size: a a a

2021 July 11

KF

Konstantin Firsov in dlang.ru
Похелловордил в растовой песочнице, ммм... вроде как ругается на futures do nothing unless you .await or poll them, если оставить асинхронный вызов без внимания. Делать async главный метод я смотрю раст не может. Еще интересно, почему это он прицепился к имени функции: should have a snake case name, ему-то какая разница?
источник

И

Игорь in dlang.ru
future это просто "структура". вызовом асинк ф-ции ты её создал. Но никакого процесса не запустил. Компайлер предупреждает что тут что-то не так.
источник

И

Игорь in dlang.ru
async main требует среды которая дернет этот main асинхронно.
источник

И

Игорь in dlang.ru
про snake case - наверняка можно отключить
источник

EP

Egor Pugin in dlang.ru
идём далее

как сделать type_identity, чтобы работать с типами?
Это тайпдеф в классе
template <typename T> struct type_identity {
 using type = T;
};
источник

KF

Konstantin Firsov in dlang.ru
ясно, спасибо. Трудно сходу оценить незнакомый язык, возможно, подходы раста лучше защищают от ошибок. С другой стороны, если она не запускается, то мне кажется я наступил на грабли другого рода - ожидал, что асинхронная функция запустится сразу, кгм...
источник

И

Игорь in dlang.ru
Ну и компилятор сразу переполошился )
источник

KF

Konstantin Firsov in dlang.ru
ммм.. наверное можно стрельнуть в ногу еще и как-то так:
async fn print_hello() {
   println!("hello");
}
fn main() {
   let _mut = print_hello();
   println!("End");
}
источник

Т

Тающий звук... in dlang.ru
А можно стрельнуть в ногу вот так:
fn main() {
   println!("End");
   println!("hello");
}
источник

OB

Oleg B in dlang.ru
не уверен что точно понимаю этот С++, но могу предположить что хочется как-то зафиксировать в пространстве имён структуры тип которым инстанцируется её шаблон, если это так то это делается alias'ом, например так:
struct TypeIdentity(T) {
    alias Type = T;
}
источник

OB

Oleg B in dlang.ru
в чистом виде редко, мне кажется нужно, обычно тип вычисляется как-то и на него уже делается alias, т.к. просто тип которым инстанцирован шаблон можно и без этого узнать
источник

Т

Тающий звук... in dlang.ru
А как этим пользоваться ?

TypeIdentity!int a;
a.Type b;
Так что-ли ?
источник

OB

Oleg B in dlang.ru
можно и сам тип использовать TypeIdentity!(T).Type
источник

Т

Тающий звук... in dlang.ru
Понятно, только пока непонятно, где это может пригодиться
источник

OB

Oleg B in dlang.ru
я ж написал, такой тип может быть вычисленным, чтобы не вычислять его ещё раз он может быть использован из пространства имён структуры
источник

OB

Oleg B in dlang.ru
например ты делаешь тип битовой маски и параметризуешь его массивом имён полей, так вот хранилище для битов может быть вычислено из количества требуемых бит (т.е. количества имён в массиве)
источник

Т

Тающий звук... in dlang.ru
Понял. Не внимательно прочитал тот комментарий в первый раз
источник

EP

Egor Pugin in dlang.ru
так мы тип записали в значение, в переменную
источник

EP

Egor Pugin in dlang.ru
то есть можно делать вычисления на типах
источник