void Realm::merge(const Realm &r) { if (r._dimension != _dimension) throw std::invalid_argument( "Tried to merge "+r.toString()+" into Realm "+toString()+".\n" "You can only merge realms of equal dimension."); for (realm_container_type::const_iterator i = r.cbegin(); i != r.cend(); ++i) _subrealm.push_back(*i); }
void Realm::push_back(const Realm &r) { if (!_dimension) _dimension = r._dimension+1; if (r._dimension != _dimension-1) throw std::invalid_argument( "Tried to push_back() "+r.toString()+" to Realm "+toString()+".\n" "You can only add realms of dimension this->_dimension-1."); _subrealm.push_back(r); }