Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[54.226.155.151] |
|
Страницы: (7) « Первая ... 5 6 [7] все ( Перейти к последнему сообщению ) |
Сообщ.
#91
,
|
|
|
Не не не ... в доках чуть иначе. Переменная владеет значением. Или передавай владение или делай референс. Из референсов только один может быть мутебельным. Если передаешь - старая переменная (не объект, не значение) становится невалидной. А значением (объектом) владеет уже другая переменная. Добавлено Цитата OpenGL @ Зачем? Ну вот есть поля, которые используются только когда объект находится в определённом состоянии и инициализируются когда объект в него входит. В конструкторе я их проинициализирую, конечно, и вовсе не факт, что из полей старого объекта. Твое решение в Расте? |
Сообщ.
#92
,
|
|
|
Это мне не противоречит.
Добавлено Цитата JoeUser @ Твое решение в Расте? Забью Это несущественная мелочь же. |
Сообщ.
#93
,
|
|
|
Цитата OpenGL @ Это мне не противоречит. Возможно. Но мне малеха режет слух. Я уже привык, читая доки, разделять понятия. Переменные - это "контейнеры", содержимое - это значения (целые, плавающие, структуры, твои объекты, ссылки ...). Только один "контейнер" (все же лучше переменная) - владеет одним "значением". Но я еще в процессе чтива хэндбука. Кстати, запостив статью выше, я обнаружил альтернативу директиве "impl" - типа "dyn". Есть чо по-мелочи рассказать? А если найду? Добавлено Цитата OpenGL @ Забью Это несущественная мелочь же. Так не пойдет! Давай пример, дай посмотреть - подумать. |
Сообщ.
#94
,
|
|
|
Цитата JoeUser @ Цитата D_KEY @ В раст по умолчанию это для переменных так работает, поля структурок он же по значению хранит? Не так! Все зависит от типа, и какой из типажей он имеет - Copy или Drop. От типа чего? Поля или объекта? Покажи пример. Цитата И до С++11 обуздать прожорливость SFINAE было непросто, в С++11 пришла радость в виде std::enable_if enable_if уже очень давно был в boost. Если не хотелось буста, самому тоже можно было накидать. |
Сообщ.
#95
,
|
|
|
Цитата D_KEY @ От типа чего? Поля или объекта? Покажи пример. Ну я же уже выше специально приводил два куска кода И про типы все расписал Немножко ознакомься с базовыми понятиями Раста и станет все понятно. Если оооочень коротко - типажи (trasits) отвечают за ПОВЕДЕНИЕ типа, для которого они определены. Для "базовых" и коротких типов, выше я перечислял, поведение Copy определено по-умолчанию. Ну вот ведут они себя так! А для структур определено другое поведение Drop, там нужно вызывать деструктор после передачи. И передаваемая переменная, после передачи своего значения (содержимого) становится невалидной. Ай!!! Читай выше, я там все написал, дублировать не буду. Скрытый текст M OpenGL, мастер! Приглядывай тут за мной, а то я тут такую могу пургу нанести со своим недообученным багажом по Расту! Но я стараюсь дискуссировать пока в рамках прочитанного и на левую ногу осознанного. |
Сообщ.
#96
,
|
|
|
Цитата JoeUser @ Я уже привык, читая доки, разделять понятия. Да не в разделении тут дело. Я говорю, как оно на низком уровне работает и как уживается с высоким. Т.е. это просто дополнение. Цитата JoeUser @ Кстати, запостив статью выше, я обнаружил альтернативу директиве "impl" - типа "dyn". В смысле? fn foo() -> impl Trait vs fn foo() -> &dyn Trait? Так это разные штуки. dyn был введён потому, что, читая код и видя Box<Foo>, ты не знаешь, чем это Foo является - трейтом или структурой. dyn же явно говорит, что ожидается динамическая диспетчеризация, т.е. это трейт. Цитата JoeUser @ Давай пример, дай посмотреть - подумать. Зачем? Я вроде бы всё максимально чётко расписал, т.е. пример будет такой же, но кодом. А придумывать более-менее реальный пример мне лениво |
Сообщ.
#97
,
|
|
|
Цитата OpenGL @ А придумывать более-менее реальный пример мне лениво Ни разу тебя ни о чем не просил!!! А вот ту - прошу! Не подумай ничего такого, мне учится надо срочно, и врага знать фэйс-ту-фэйс! |