void swap(compressed& x) { boost::swap(first(), x.first()); boost::swap(second(), x.second()); }
void move_assign(compressed& x) { first() = boost::move(x.first()); second() = boost::move(x.second()); }
void assign(compressed const& x) { first() = x.first(); second() = x.second(); }
compressed(compressed& x, move_tag m) : base1(x.first(), m), base2(x.second(), m) {}
compressed(compressed const& x) : base1(x.first()), base2(x.second()) {}
void swap(compressed& x) { geofeatures_boost::swap(first(), x.first()); geofeatures_boost::swap(second(), x.second()); }