"используйте" параметры, объявленные, когда X && должны всегда перемещаться от
"используйте" параметры, объявленные, когда X && должны всегда перемещаться от.
При объявлении функции вы можете указать на свое намерение переместить содержимое параметра функции путем объявления его как nonconst и не обработать по шаблону rvalue ссылку или "использование" (X&&
) параметр. Например, параметр этой функции объявляется как "использовать" параметр: void foo(std::vector<std::string>&& V)
. Это объявление подразумевает что содержимое векторного V
предназначается, чтобы быть перемещенным вместо скопированного в теле функции.
Когда вы объявите параметр функции как "использовать" параметр, используйте семантику перемещения при использовании параметра. В теле функции используйте std::move
функционируйте явным образом, если вы используете lvalue ссылку, чтобы вызвать функцию.
Polyspace® отмечает определение функции, если оба из этих условий верны:
По крайней мере один параметр функции объявляется как nonconst и нешаблон rvalue ссылка, то есть, "использование" или X&&
параметр.
Содержимое X&&
параметр не полностью перемещен в другой объект при помощи std::move
функция в теле функции.
Polyspace не повышает этот дефект в конструкторах перемещения и перемещает операторы присваивания.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: операторы объявления |
Категория: необходимый, автоматизированный |