|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||||||
Хочу вспомнить, в чем подвох с конструктором перемещения const D&&06.08.2021, 20:43. Показов 1740. Ответов 24
Метки нет (Все метки)
Есть класс:
0
|
||||||
| 06.08.2021, 20:43 | |
|
Ответы с готовыми решениями:
24
query='SELECT * FROM resume WHERE ' & ''' & RecSet('place')& ''' & '=' & '''& s_loc &''' & - что не так? Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration? error '80020009' Îøèáêà. /lalala/profile.asp, line 28 |
|
Вездепух
13184 / 6820 / 1821
Регистрация: 18.10.2014
Сообщений: 17,260
|
|||
| 06.08.2021, 21:11 | |||
const D&& - это уже бессмысленно.
0
|
|||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||||||
| 06.08.2021, 21:26 [ТС] | ||||||
|
TheCalligrapher, Я всетаки сумел найти ответ.
Вот: https://stackoverflow.com/ques... -reference Добавлено через 3 минуты т.е. от того const у нас или не const будет разный результат перегрузки конструкторов.
0
|
||||||
|
Вездепух
13184 / 6820 / 1821
Регистрация: 18.10.2014
Сообщений: 17,260
|
|
| 06.08.2021, 21:27 | |
|
0
|
|
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
| 06.08.2021, 21:29 [ТС] | |
|
TheCalligrapher, Ну да, совсем маленький баг когда вместо одного конструктора вызывается другой, от того что машинально добавили квалификатор const конструктору перемещения.
0
|
|
|
Вездепух
13184 / 6820 / 1821
Регистрация: 18.10.2014
Сообщений: 17,260
|
|||
| 06.08.2021, 21:31 | |||
|
О чем речь? Добавлено через 1 минуту О чем речь?
0
|
|||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
| 06.08.2021, 21:32 [ТС] | |
|
TheCalligrapher, А вот и нет.
0
|
|
|
Вездепух
13184 / 6820 / 1821
Регистрация: 18.10.2014
Сообщений: 17,260
|
|
| 06.08.2021, 21:37 | |
|
0
|
|
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||||||
| 06.08.2021, 21:43 [ТС] | ||||||
TheCalligrapher, А что Вас за компилятор, что результат не такой как у меня ?
0
|
||||||
|
Вездепух
13184 / 6820 / 1821
Регистрация: 18.10.2014
Сообщений: 17,260
|
|
| 06.08.2021, 21:44 | |
|
Так в чем "подвох" еще раз? Вас удивило, что
std::move сохраняет константность исходной ссылки? Ничего удивительного в этом нет. D&& невозможно привязать к константному объекту. Никакого подвоха в этом нет.
0
|
|
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
| 06.08.2021, 21:47 [ТС] | |
|
TheCalligrapher, Я объяснил как мог. По другому не знаю как еще можно объяснить. см. моё сообщение 5.
0
|
|
|
Вездепух
13184 / 6820 / 1821
Регистрация: 18.10.2014
Сообщений: 17,260
|
||||||||||||
| 06.08.2021, 21:47 | ||||||||||||
D&& в конструкторе.Вы тестируете
D&& в конструкторе.Разумеется. Неконстантную ссылку невозможно привязать к константному объекту. Но где тут "подвох"? В чем новость? Это совершенно естественное поведение move semantics: невозможно просто так взять и переместить из константного источника. Это не "подвох", а натуральное ожидаемое поведение.
0
|
||||||||||||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
| 06.08.2021, 21:49 [ТС] | |
|
TheCalligrapher, Я полный код теста выложил в сообщении 9
0
|
|
|
Вездепух
13184 / 6820 / 1821
Регистрация: 18.10.2014
Сообщений: 17,260
|
||||||||||||
| 06.08.2021, 22:00 | ||||||||||||
Еще раз: где "подвох"? Вы говорите о потенциале для какого-то "большого бага". Я же вижу, что наоборот: поведение move semantics совершенно естественным образом защищает вас от создания "большого бага".
0
|
||||||||||||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
| 06.08.2021, 22:05 [ТС] | |
|
TheCalligrapher, Наверно нет никого подвоха, а мне показалось.
0
|
|
|
Вездепух
13184 / 6820 / 1821
Регистрация: 18.10.2014
Сообщений: 17,260
|
|
| 06.08.2021, 22:16 | |
|
Правила overload resolution для
&& и поведение std::move специально сделаны так, чтобы не позволить вам выполнить перемещение из константного объекта. Это - вполне естественно, ибо в общем случае перемещение является модифицирующей операцией.При попытке "перемещения" из константного объекта правила overload resolution "постараются" выполнить копирование. Что тоже вполне естественно: копирование - это тоже частный случай перемещения. Единственный "подвох", который я здесь вижу, это то, что для выполнения "копирования" компилятор может выбрать конструктор const &&, если вы зачем-то его предоставили. Если вы напишете два конструктора - const & и const && - с разной семантикой, то это может привести к неожиданностям.Но это уже вопросы к вам: зачем вы вообще использовали в коде комбинацию const &&? И, если уж вы ее использовали, то почему семантика const && конструктора у вас отличается от семантики const & конструктора? И, поднимаясь выше, зачем вы вообще пытались применить std::move к константному источнику?
0
|
|
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||
| 06.08.2021, 22:22 [ТС] | ||
0
|
||
|
Вездепух
13184 / 6820 / 1821
Регистрация: 18.10.2014
Сообщений: 17,260
|
||
| 06.08.2021, 22:52 | ||
|
Но ведь после "машинального добавления const", вы не сможете "машинально" написать модифицирующий конструктор перемещения, так как этот "машинально добавленный const" не даст вам этого сделать. То есть потенциал для "машинальных" проблем тут возникает только в том случае, когда семантика перемещения класса отличается от семантики копирования, но при этом все равно является немодифицирующей. Потенциально, наверное, такое возможно, но навскидку я не могу придумать хорошего осмысленного примера такой семантики перемещения. И, опять же, чтобы нарваться на эту проблему вам нужна вторая компонента: попытка применить std::move к константному объекту в вызывающем коде, что тоже является весьма странным действием. Разве что такое может образоваться неявно, в generic коде...
0
|
||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|||||||||||
| 06.08.2021, 23:06 [ТС] | |||||||||||
|
TheCalligrapher, Да, Вы были правы. В том коде нет смысла. Мне самому сначало надо вспомнить. всётаки.
Вот новый тест(упрощенный вариант рабочего кода):
Добавлено через 13 минут Для запуска:
0
|
|||||||||||
|
Вездепух
13184 / 6820 / 1821
Регистрация: 18.10.2014
Сообщений: 17,260
|
||
| 07.08.2021, 08:02 | ||
|
0
|
||
| 07.08.2021, 08:02 | |
|
Помогаю со студенческими работами здесь
20
Помогите найти драйвера для pci\ven_8086&DEV_266E&SUBSYS_A002145&REV_05\3&13C0B0C5&0&F2 Мультимедиа контролер PCI\VEN_14F1&DEV_8800&SUBSYS_EA3D14F1&REV_05\4&25700A26&0&3020 немогу найти драйвера на PCI\VEN_1039&DEV_7012&SUBSYS_810D1043&REV_A0\3&61AAA01&0&17 Нужен драйвера, код PCI\VEN_1039&DEV_7012&SUBSYS_0C98105B&REV_A0\3&B1BFB68&0&17 Драйвера на PCI\VEN_10B7&DEV_1700&SUBSYS_80EB1043&REV_12\4&2E98101C&0&28 F0 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|