Size: a a a

2021 January 14

0

000Sanya in dlang.ru
И еще пример, где шаблоны проигрывают
в растовских трейтах я легко могу перейти от шаблона к интерфейсу(impl и dyn)
impl говорит что мы статически проверяем тут все и вызываем тоже
dyn говорит что мы ждем виртуальную таблицу методов
источник

0

000Sanya in dlang.ru
Ладно, я обещал маркеры
источник

0

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

0

000Sanya in dlang.ru
например Send и Sync из раста, у которых из завязки на компилятор только их автореализация
источник

0

000Sanya in dlang.ru
а так они отображают лишь то, можно ли типу работать в многопоточной среде
источник

0

000Sanya in dlang.ru
и функция send для канала выглядела бы так
fn send<T: Send>(channel: &Channel, message: T)
источник

0

000Sanya in dlang.ru
то есть тут мы говорим, что мы ожидаем тип, который разрешено пересылать между потоками
источник

0

000Sanya in dlang.ru
А учитывая некоторые возможности к автореализации, можно на таких маркерах строить сложную логику для типов
источник

0

000Sanya in dlang.ru
Как вот маркеры реализовать на шаблонах, кроме UDA, мне непонятно
источник

И

Игорь in dlang.ru
а чем uda плохи?
источник

И

Игорь in dlang.ru
и вот еще вопрос - допустим ты хочешь ну скажем сериализовать класс или структуру в тело которй не можешь (нет доступа к исходникам) вставить ни derive ни uda - как это можно сделать?
источник

0

000Sanya in dlang.ru
Игорь
и вот еще вопрос - допустим ты хочешь ну скажем сериализовать класс или структуру в тело которй не можешь (нет доступа к исходникам) вставить ни derive ни uda - как это можно сделать?
ну в serde для этого есть отдельная страничка
описано то, что ты можешь продублировать публичные поля структуры в свою и ее пометить как сериализатор для той структуры
источник

0

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

0

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

И

Игорь in dlang.ru
понятно, то есть он скопирует и скопированное отсериализует
источник

EP

Egor Pugin in dlang.ru
000Sanya
то есть тут мы говорим, что мы ожидаем тип, который разрешено пересылать между потоками
https://godbolt.org/z/9KGo8E
что-то такое?
источник

0

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

0

000Sanya in dlang.ru
Возможно, плюсовые концепты слабо знаю
источник

И

Игорь in dlang.ru
000Sanya
То есть никто не позволит нарушить приватность
тут дело не только в приватности, а в том как ты можешь получить доступ к типам того что ты хочешь сериализовать
источник

0

000Sanya in dlang.ru
Игорь
тут дело не только в приватности, а в том как ты можешь получить доступ к типам того что ты хочешь сериализовать
ну то есть только по тому интерфейсу что дали
источник