У меня есть класс некий класс 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);