тема запрета копирований структур а-ля как в крестах удаление копи-конструктора? Если да, то мб линк у кого имеется на обсуждение?
Поясни свою идею. Что ты хочешь в итоге получить, какое поведение?
Компайл-тайм эррор при попытке скопировать любым образом
Это в общем случае не реализуемо. Берём массив страктов, делаем из него спан и копируем по memcpy или CopyTo
Ну всякие мемкопи-то понятно, там и в крестах от такого не защитишься. Я подразумеваю защиту на уровне "передал в метод без рефа" или "сделал var copy = otherStruct;"
Ты можешь попробовать по пути Roslyn анализатора пойти и детектить запрещённые варианта использования
Ref readonly новый как раз поможет
Да это понятно, мой изначальный вопрос был не в "как сделать", а ссылка на обсуждение если таковая была у майков на гитхабе например
https://github.com/dotnet/csharplang/blob/main/proposals/csharp-12.0/ref-readonly-parameters.md Подойдёт?
А как это относится к декларации структур? Я вижу там использование модификаторов для аргументов, а не для типов
На уровне структур никак, но на уровне методов их использующих можно требовать передачу по рефу
А я вроде бы как другое спрашивал :)
Да, но я исходил из возможности решения задачи сейчас :)
Обсуждают сегодня