Size: a a a

2021 May 27

Т8

Т-34 85 in dlang.ru
Это значит, что теряется информация об исходном типе. Полностью или частично
источник

0

000Sanya in dlang.ru
Про шарп: что.....
Про раст: что.... Всмысле затираются?
источник

Т8

Т-34 85 in dlang.ru
То. Ссылочные типы затираются

В расте да, затираются. Ты не знал? Они потом рифаятся в MIR, но во фронте именно затёрты
источник

DH

Dark Hole in dlang.ru
А, type erasure
А разве в шарпах не затираются? Хотя, надо проверить
источник

0

000Sanya in dlang.ru
В плане затираются?
источник

0

000Sanya in dlang.ru
Так стоп, я чуть потерялся
источник

DH

Dark Hole in dlang.ru
Где в шарпах темплейты? О.о
источник

Т8

Т-34 85 in dlang.ru
Там для примитивных типов инстанцирование, а для ссылочных -боксинг
источник

0

000Sanya in dlang.ru
T4 разве что, но кому он нужен
источник

DH

Dark Hole in dlang.ru
Ааааа
источник

0

000Sanya in dlang.ru
Про раст: я знаю что если у меня написано Vec<T> то мне компилятор и породит отдельный Vec для моего T
источник

0

000Sanya in dlang.ru
В шарпе ровно тоже
источник

Т8

Т-34 85 in dlang.ru
В прямом. Ты указываешь where в дженерике - и вот здесь ты затираешь
источник

0

000Sanya in dlang.ru
только там jit этим занимается
источник

0

000Sanya in dlang.ru
так это не затирание типа, это ограничения на тип
источник

Т8

Т-34 85 in dlang.ru
И всё, после этого ты не знаешь в компайлтайме какой именно тип пришёл
источник

Т8

Т-34 85 in dlang.ru
Ну, и как ты узнаешь исходный тип в компайлайме, если это не затирание?
источник

0

000Sanya in dlang.ru
так это не затирание типа, у тебя просто нет средств работать с типом
источник

Т8

Т-34 85 in dlang.ru
Каких средств? Информации об исходном типе?
источник

DH

Dark Hole in dlang.ru
Т.е. в шарпах нельзя так? void func<T>() { T t; }
источник