+shared_ptr<const LogicSegment> LogicSegment::get_shared_ptr() const
+{
+ shared_ptr<const Segment> ptr = nullptr;
+
+ try {
+ ptr = shared_from_this();
+ } catch (std::exception& e) {
+ /* Do nothing, ptr remains a null pointer */
+ }
+
+ return ptr ? std::dynamic_pointer_cast<const LogicSegment>(ptr) : nullptr;
+}
+