An Entity of Type: Thing, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

In the C++ programming language, the move assignment operator = is used for transferring a temporary object to an existing object. The move assignment operator, like most C++ operators, can be overloaded. Like the copy assignment operator it is a special member function.

Property Value
dbo:abstract
  • In the C++ programming language, the move assignment operator = is used for transferring a temporary object to an existing object. The move assignment operator, like most C++ operators, can be overloaded. Like the copy assignment operator it is a special member function. If the move assignment operator is not explicitly defined, the compiler generates an implicit move assignment operator (C++11 and newer) provided that copy/move constructors, copy assignment operator or destructors have not been declared. The parameter of a move assignment operator is an rvalue reference (T&&) to type T, where T is the object that defines the move assignment operator. The move assignment operator is different than a move constructor because a move assignment operator is called on an existing object, while a move constructor is called on an object created by the operation. Thereafter, the other object's data is no longer valid. (en)
  • Семантика перемещения (англ. move semantics) — собирательное название специализированных средств языка программирования C++, которые предназначены для осуществления перемещения данных во время инициализации и конструирования новых объектов, что позволяет сократить издержки на копирование. Для практического осуществления семантики перемещения в синтаксис C++ введены ссылки, а также конструкторы перемещения и перемещающий оператор присваивания. Появление в стандарте языка C++ семантики перемещения состоялось с выходом обновлённого стандарта C++11; оно было продиктовано необходимостью оптимизировать вычислительные расходы там, где до этого применялась семантика передачи по значению. Введение семантики перемещения данных в стандарт языка получило высокую оценку сообщества разработчиков ввиду того, что она даёт широкие возможности для оптимизации внутреннего кода вызовов функций и методов классов. Эта оптимизация достигается отказом от копирования данных при создании временных объектов, у которых отсутствует необходимость сохранять их внутренние ресурсы для дальнейшего использования. Появление в стандарте семантики перемещения потребовало формализовать вывод аргументов параметризованных типов (шаблонов) и их использование, в связи с чем появился регламент прямой передачи, а «правило трёх» эволюционировало в «правило пяти»: теперь при управлении памятью помимо конструктора копирования, деструктора и копирующего оператора присваивания разработчику требуется определить конструктор перемещения и перемещающий оператор присваивания. Компилятору разрешено их автоматически задействовать тогда, когда их аргументы соответствуют определению rvalue. (ru)
  • C++语言中,移动赋值运算符(move assignment operator)=用于把一个临时对象转移给一个已存在对象并可以运算符重载。类似于,移动赋值运算符也是特殊成员函数。这是从C++11开始引入的概念。 在没有定义拷贝构造函数、拷贝赋值运算符、析构函数和移动构造函数时,编译器会自动生成移动赋值运算符。在实践中,这个特性非常有用 —— 有些资源只应该被移动而不应该被拷贝,如mutex、socket等 移动赋值运算符的操作数是右值引用类型的(T&&),其中T是定义了移动赋值运算符的对象本身。 移动赋值运算符不同于。前者是赋值给一个已存在的对象。后者是创建一个新对象。二者完成后,操作数对象不复存在。 (zh)
dbo:wikiPageID
  • 49517831 (xsd:integer)
dbo:wikiPageLength
  • 2920 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1123293945 (xsd:integer)
dbo:wikiPageWikiLink
dbp:wikiPageUsesTemplate
dcterms:subject
rdfs:comment
  • C++语言中,移动赋值运算符(move assignment operator)=用于把一个临时对象转移给一个已存在对象并可以运算符重载。类似于,移动赋值运算符也是特殊成员函数。这是从C++11开始引入的概念。 在没有定义拷贝构造函数、拷贝赋值运算符、析构函数和移动构造函数时,编译器会自动生成移动赋值运算符。在实践中,这个特性非常有用 —— 有些资源只应该被移动而不应该被拷贝,如mutex、socket等 移动赋值运算符的操作数是右值引用类型的(T&&),其中T是定义了移动赋值运算符的对象本身。 移动赋值运算符不同于。前者是赋值给一个已存在的对象。后者是创建一个新对象。二者完成后,操作数对象不复存在。 (zh)
  • In the C++ programming language, the move assignment operator = is used for transferring a temporary object to an existing object. The move assignment operator, like most C++ operators, can be overloaded. Like the copy assignment operator it is a special member function. (en)
  • Семантика перемещения (англ. move semantics) — собирательное название специализированных средств языка программирования C++, которые предназначены для осуществления перемещения данных во время инициализации и конструирования новых объектов, что позволяет сократить издержки на копирование. Для практического осуществления семантики перемещения в синтаксис C++ введены ссылки, а также конструкторы перемещения и перемещающий оператор присваивания. (ru)
rdfs:label
  • Move assignment operator (en)
  • Семантика перемещения (ru)
  • 移动赋值运算符 (zh)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageWikiLink of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License