Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Семантика перемещения

Из Википедии — свободной энциклопедии

Семантика перемещения (англ. move semantics) — собирательное название специализированных средств языка программирования C++, которые предназначены для осуществления перемещения данных во время инициализации и конструирования новых объектов, что позволяет сократить издержки на копирование. Для практического осуществления семантики перемещения в синтаксис C++ введены rvalue ссылки, а также конструкторы перемещения и перемещающий оператор присваивания[1].

Появление в стандарте языка C++ семантики перемещения состоялось с выходом обновлённого стандарта C++11; оно было продиктовано необходимостью оптимизировать вычислительные расходы там, где до этого применялась семантика передачи по значению[2].

Введение семантики перемещения данных в стандарт языка получило высокую оценку сообщества разработчиков ввиду того, что она даёт широкие возможности для оптимизации внутреннего кода вызовов функций и методов классов. Эта оптимизация достигается отказом от копирования данных при создании временных объектов, у которых отсутствует необходимость сохранять их внутренние ресурсы для дальнейшего использования[3].

Появление в стандарте семантики перемещения потребовало формализовать вывод аргументов параметризованных типов (шаблонов) и их использование, в связи с чем появился регламент прямой передачи[4], а «правило трёх» эволюционировало в «правило пяти»: теперь при управлении памятью помимо конструктора копирования, деструктора и копирующего оператора присваивания разработчику требуется определить конструктор перемещения и перемещающий оператор присваивания[5]. Компилятору разрешено их автоматически задействовать тогда, когда их аргументы соответствуют определению rvalue[6].

Энциклопедичный YouTube

  • 1/3
    Просмотров:
    7 809
    227 437
    1 529
  • 08.2 - C++. Семантика перемещения
  • Конструктор копирования. Что это. Пример. Когда вызывается Копирование объектов по умолчанию C++ #82
  • Введение в ИТ. Rvalue-ссылки и семантика перемещения

Субтитры

Примечания

  1. Пай, Абрахам, 2018, Семантика перемещения, с. 50.
  2. Sehr, Andrist, 2018, Move semantics explained.
  3. Вандевурд, 2018, Семантика перемещения и enable_if<>, с. 125.
  4. Вандевурд, 2018, Применения шаблонов с переменным количеством аргументов, с. 95.
  5. Sehr, Andrist, 2018, Introducing move semantics.
  6. Sehr, Andrist, 2018, Named variables and r-values.

Источники

Эта страница в последний раз была отредактирована 7 ноября 2022 в 11:16.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).