diff --git a/src/include/ranges/range_base.h b/src/include/ranges/range_base.h index fa58ddd..1e151b9 100644 --- a/src/include/ranges/range_base.h +++ b/src/include/ranges/range_base.h @@ -247,6 +247,9 @@ namespace CNORXZ /** return YRange containig the ranges of the pack */ operator RangePtr() const; + + /** return YRange containig the ranges of the pack */ + operator Sptr() const; }; /** create a pack consisting of ranges a and b diff --git a/src/lib/ranges/range_base.cc b/src/lib/ranges/range_base.cc index c023605..60e3048 100644 --- a/src/lib/ranges/range_base.cc +++ b/src/lib/ranges/range_base.cc @@ -118,7 +118,12 @@ namespace CNORXZ { return YRangeFactory(mRs).create(); } - + + RangePack::operator Sptr() const + { + return std::dynamic_pointer_cast( YRangeFactory(mRs).create() ); + } + RangePack operator*(const RangePtr& a, const RangePtr& b) { CXZ_ASSERT(a != nullptr, "first operand not initialized");