must be `std::swap(compare_, rhs.compare_);`