Size: a a a

2021 May 20

DH

Dark Hole in dlang.ru
Они не immutable
источник

Е

Евгений in dlang.ru
литералы всегда immutable
источник

DH

Dark Hole in dlang.ru
Не понял мысль.
int[] мутабельный вполне, если не оптимизировать — надо копировать в память
источник

Е

Евгений in dlang.ru
литералы - это вообще не данные, это просто некая языковая сущность.
источник

Е

Евгений in dlang.ru
Не могу точно выразить мысль. Сами числа 1, 2, 3, 4 они жестко прописаны в исходнике и не могут меняться в рантайме.
источник

DH

Dark Hole in dlang.ru
А, я не посмотрел в пример
источник

DH

Dark Hole in dlang.ru
Да, там аллокации не нужны
источник

DH

Dark Hole in dlang.ru
Вот для int[] arr = [1, 2, 3, 4] могут понадобиться
источник

Е

Евгений in dlang.ru
Ага, но и тут ты фактически аллоцируешь массив и копируешь из immutable литерала.
источник

DH

Dark Hole in dlang.ru
А при immutable(int[]) a = [1, 2, 3, 4] нет аллокаций
источник

DH

Dark Hole in dlang.ru
(но @nogc нельзя лол)
источник

Е

Евгений in dlang.ru
Ага, об этом и речь.
источник

Е

Евгений in dlang.ru
Я в своих экспериментах на МК редко использую @nogc.
Так как рантайм оторван, то в случае случайной аллокации вываливается ошибка линкера :)
Так и живем :)
источник

Е

Евгений in dlang.ru
Но повторяю, это косяки реализации компилятора, а не самого языка.
источник

Е

Евгений in dlang.ru
Если массив статический, то вообще нет никаких проблем с литералами.
источник

Е

Евгений in dlang.ru
В плюсяшках, ЕМНИП, литералы аналогично работают. Либо const либо статический массив
источник

GS

Grigorii Smorkalov in dlang.ru
не совсем. в плюсах отделена сущность initializer_list, он константен, но из него можно создать любой объект, вектор, хоть своё написать. неплохо было бы и в D видеть литералы как промежуточное представление. например, чтобы они имели тип статического массива
источник

DH

Dark Hole in dlang.ru
Так можно же
источник

И

Игорь in dlang.ru
Для авс не слышал. Для гуглапи чудак лктом делал
источник

И

Игорь in dlang.ru
Я хотел допилить авс но там такой адок с их xmlями
источник