CP::SelectionAccessorExprOr Node1 CP::SelectionAccessorExprOr + SelectionAccessorExprOr() + getBool() + label() + getInputAffecting() + fillSystematics() Node2 CP::SelectionAccessorExprBase + getBits() + isBool() Node2->Node1 Node3 CP::ISelectionReadAccessor + ~ISelectionReadAccessor() + getBits() + getBool() + label() + isBool() + getInputAffecting() + fillSystematics() - operator=() Node3->Node2 Node4 std::unique_ptr< CP ::ISelectionReadAccessor > + operator->() Node3->Node4 +ptr Node4->Node1 -m_left -m_right