Страницы

Поиск по вопросам

среда, 29 января 2020 г.

Как устроена семантика перемещения? [закрыт]

#cpp #ассемблер


        
             
                
                    
                        
                            Закрыт. Этот вопрос необходимо уточнить или дополнить
подробностями. Ответы на него в данный момент не принимаются.
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            Хотите улучшить этот вопрос? Добавьте больше подробностей
и уточните проблему, отредактировав это сообщение.
                        
                        Закрыт 8 месяцев назад.
                                                                                
           
                
        
Не понимаю, как работает перемещение на уровне ассемблера?

Ведь в ассемблере нет операции перемещения, но получается что перемещение быстрее. 

Как так?
    


Ответы

Ответ 1



Нет никакой "семантики перемещения" на уровне ассемблера. Семантика перемещения - это абстрактная высокоуровневая концепция, т.е. концепция уровня языка, которая опирается на концепции категорий выражений (lvalue, rvalue, xvalue) и на сопутствующие правила разрешения перегрузки (overload resolution). С точки зрения производительности, цель семантики перемещения - организовать на уровне языка поддержку безопасного выбора между выполнением дорогого "глубокого" (deep) копирования или дешевого "мелкого" (shallow) копирования. Получающийся в результате машинный код ничем не отличается от машинного кода, который мы получали и раньше, до появления в языке семантики перемещения. Просто раньше мы реализовывали семантику перемещения "вручную", а теперь ее поддержка появилась на уровне языка.

Комментариев нет:

Отправить комментарий