R Sahu , , , A A<T>, , 1 .
, , , .
"/":
#include <iostream>
template <class Key, class Value>
struct KV_Pair {
Key key;
Value value;
KV_Pair(Key key, Value value) :
key(key),
value(value) {}
KV_Pair(Value value, Key key) :
key(key),
value(value) {}
KV_Pair(KV_Pair<Value, Key>& vk_pair) :
key(vk_pair.value),
value(vk_pair.key) {}
KV_Pair(KV_Pair<Key, Value>& vk_pair) :
key(vk_pair.key),
value(vk_pair.value) {}
};
template <class Key, class Value>
std::ostream& operator<<(std::ostream& lhs, KV_Pair<Key, Value>& rhs) {
lhs << rhs.key << ' ' << rhs.value;
return lhs;
}
int main() {
KV_Pair<int, double> kv_pair(1, 3.14);
std::cout << kv_pair << std::endl;
KV_Pair<double, int> reversed_order_pair(kv_pair);
std::cout << reversed_order_pair << std::endl;
}
Coliru.