Std::Marker::PhantomData - это для тех кому кажется что они мало

букавок в коде напечатали? какая практическая польза?

8 ответов

16 просмотров

https://doc.rust-lang.org/nomicon/phantom-data.html

Finflaex-Bastion Автор вопроса
Iztleu Darkhan
https://doc.rust-lang.org/nomicon/phantom-data.htm...

дак оттуда и скопировал, но там нет ответа зачем - просто констатация факта, что такая фигня есть

Мне один раз пригодилось, когда я хотел сделать generic структуру, но не хотел хранить экземпляр этого дженерика

Finflaex-Bastion Автор вопроса
Алексей
Мне один раз пригодилось, когда я хотел сделать ge...

мне кажется это можно было бы решить другим способом, можно пример? никак не могу придумать практический способ это использовать

Finflaex Bastion
мне кажется это можно было бы решить другим способ...

Variance задавать у дженерика, соответствующая тема есть в номиконе

Finflaex Bastion
мне кажется это можно было бы решить другим способ...

struct Bus<T> where T: IntegrityCheck { pin1: Pin, pin2: Pin, t: PhantomData<T>, } Можно было в каждой функции писать этот дженерик, но, как мне кажется, это не очень удобно Я так понял, PhantomData это как подсказка для компилятора, и по сути не имеет оверхеда

Finflaex Bastion
дак оттуда и скопировал, но там нет ответа зачем -...

Там же пример есть: struct Iter<'a, T: 'a> { ptr: *const T, end: *const T, } В данном коде ты будешь ожидать что твой Т будет жить столько же сколько и Iter. Но это не так. Поэтому мы помечаем его так struct Iter<'a, T: 'a> { ptr: *const T, end: *const T, _marker: marker::PhantomData<&'a T>, } Время жизни будет ограничено, и ваш итератор будет ковариантным относительно 'aи T

Finflaex Bastion
дак оттуда и скопировал, но там нет ответа зачем -...

Чтобы добавить, например, лайфтайм дженерики структуре, содержащий сырые указатели

Похожие вопросы

Обсуждают сегодня

а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Всем привет, может уже кто-то пытался выдернуть из api информацию о дате рождения пользователя Есть ли вообще такая возможность?
Artem Stormageddon
2
Подскажите где можно прочитать про реализацию возможности писать человеку при подписке на телеграм канал от имени бота? Было бы не плохо если для Telegraf@3.38.0
Pan Lipton
10
Мне вот что интересно, кто на рфе стартовал/играл, что вы фармили, в каком виде контента он прямо хорош? Экспедиция? Вроде прямо на замазанных мапах рф сдувается
Владислав
20
Ребята, я за проф советом😅 По микросервисам. В монолите есть общие файлы для сервисов: фетчи, конфиги, либы, утилсы.. как при распиле правильно их поддерживать? Пока вариант д...
Александр Тарасюк
1
‌/r/pathofexile moderation changes top scoring links : pathofexile (RSS) Hi, everyone. On behalf of the subreddit mod team, I’m here to give you a few updates on the subreddi...
Esionru
3
У меня вопрос к знающими, стоит ли вступать в гильдии в игре или лучше полная свобода?
Енот Полоскун
17
всем привет. я правильно понимаю, что в телеграфе 4, если сессию указать у сообщения с коллбеком (кликнул на кнопку и установил сессию), то она не сохраняется?
Тимур
1
У вас бывает ощущение, что хочется потратить весь отпуск на то, чтоб только спать?
Николай
15
Как можно настроить фильтр в пое под себя?
Yarik yarik kyda ti lezesh
15
Карта сайта