Какое обоснование типов контейнеров в ЗППП определяет их собственную функцию свопа, даже если их эмантитика была правильC++

Программы на C++. Форум разработчиков
Anonymous
Какое обоснование типов контейнеров в ЗППП определяет их собственную функцию свопа, даже если их эмантитика была правиль

Сообщение Anonymous »

Ниже является наиболее распространенной реализацией std :: swap :

Код: Выделить всё

template
void std::swap(T& a, T& b) {
auto tmp = std::move(a);
a        = std::move(b);
b        = std::move(tmp);
}
Стандарт C ++ требует сложности времени std :: swap должен быть постоянным. Таким образом, если тип контейнера, такой как std :: vector , std :: list и т.п., правильно реализовал свой hove-ctor & oppendment-operator ; Затем, кажется, не необходимо определить функцию члена SWAP для типа. Я думаю, что за дизайном должно быть конкретное обоснование, что это?

Подробнее здесь: https://stackoverflow.com/questions/796 ... -swap-func

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