Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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);
}