template Thing &Pair::get_first() { return first_; } template Thing &Pair::get_second() { return second_; } template void Pair::set_first(Thing ©me) { first_ = copyme; } template void Pair::set_second(Thing ©me) { second_ = copyme; } template void Pair::Reverse() { // makes *3* copies Thing tmp = first_; first_ = second_; second_ = tmp; }