Задать вопрос
@Avery007

Какие должны быть перегрузки у конструктора с учётом move semantic?

У меня есть класс некий класс Pair , который хранит пару ключ-значение. До появление move semantic, я бы написал единственный конструктор, где оба параметра - const reference:
Pair(const K& Key, const V& Value);
Но сейчас, я не знаю, достаточно ли мне написать только одну дополнительную перегрузку
Pair(const K& Key, const V& Value);
Pair(K&& Key, V&& Value);

или же, помимо неё, добавить ещё две перегрузки
Pair(const K& Key, const V& Value);
Pair((K&& Key,, const V& Value);
Pair(const K& Key, V&& Value);
Pair(K&& Key, V&& Value);
  • Вопрос задан
  • 194 просмотра
Подписаться 1 Оценить 3 комментария
Решения вопроса 1
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Pair(const Pair<K, V>&& other)
{
key = other.key;
value = other.value;
other.key = other.value = nullptr;
}

Только зачем вам здесь move semantic?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы