double_block_type::double_block_type(const range &bounds, const offset_multiplier &ls) : bounds_(bounds), ls_(ls) { if (bounds.has_low() || bounds.has_high()) if (ls.has_offset() || ls.has_multiplier()) throw std::invalid_argument("Block type cannot have both a bound and" "an offset/multiplier."); }