О частных операторах копирования/перемещения, операторах и т. д.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 О частных операторах копирования/перемещения, операторах и т. д.

Сообщение Anonymous »

Недавно я занимался бэкпортированием некоторого программного обеспечения Qt для сборки с Qt 5.9, что (среди прочего) означало поиск решения для того факта, что Q_DISABLE_MOVE(class) и комбинированный макрос anti-copy+move были представлены только в Qt 5.13.
Я понимаю преимущества этих механизмов в предотвращении ошибок кодирования, но они в значительной степени спорны, когда вы выполняете резервное копирование путем добавления конструкции #ifdef/#else для поддержки более ранних версий, в данном случае Qt.
В рассматриваемом проекте имеется множество заголовочных файлов, использующих QDISABLE_COPY_MOVE, поэтому самый простой и быстрый способ их компиляции — через аргумент условного компилятора: -DQ_DISABLE_COPY_MOVE=Q_DISABLE_COPY . При этом код компилируется и запускается.
Мой вопрос: есть ли другие преимущества в отключении оператора перемещения и связанных с ним операторов с точки зрения производительности, использования памяти или размера двоичного файла? Недостающие макросы легко добавить, и они достаточно малы, для этого требуется лишь изменить множество файлов...

Подробнее здесь: https://stackoverflow.com/questions/798 ... rators-etc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»