コード例 #1
0
ファイル: paramset.hpp プロジェクト: sybila/NewBioDiVinE
	static std::pair<region_t, region_t> split_region(region_t && r, std::size_t dim, value_type value, bool up)
	{
		if ((up && r.box[dim].second <= value) || (!up && r.box[dim].first >= value))
			return std::make_pair(region_t(), std::move(r));

		if ((up && r.box[dim].first >= value) || (!up && r.box[dim].second <= value))
			return std::make_pair(std::move(r), region_t());

		region_t retained(std::move(r));
		region_t removed(retained);
		retained.box[dim].first = value;
		removed.box[dim].second = value;

		if (up)
			return std::make_pair(std::move(retained), std::move(removed));
		else
			return std::make_pair(std::move(removed), std::move(retained));
	}
コード例 #2
0
ファイル: backfill_item_seq.hpp プロジェクト: AtnNn/rethinkdb
 region_t get_region() const {
     if (left_key == right_key) {
         return region_t::empty();
     } else {
         key_range_t kr;
         kr.left = left_key.key();
         kr.right = right_key;
         return region_t(beg_hash, end_hash, kr);
     }
 }