From 70358e4233d8c2265e63804b2ac72d1f22d1e9f2 Mon Sep 17 00:00:00 2001 From: Christian Zimmermann Date: Tue, 28 Jan 2025 17:18:44 -0800 Subject: [PATCH] range pack: add explicit cast to YRange Ptr --- src/include/ranges/range_base.h | 3 +++ src/lib/ranges/range_base.cc | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) 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");