Val<T_>itemValue(intmin=1){if(Q_LIKELY(m_out)&&m_out->_item(min)){T_scopedT(m_out);returnstd::move(Val<T_>(std::move(scopedT)));}returnVal<T_>();}// the m_out copy must be scoped and will be invalid when the original is destroyed
TResult_unsafeCopy(){returnm_out._unsafeCopy();}//!< it is the caller's responsibility to use it immediately and only one time, otherwise the backing TResult state will be unknown
T_m_out=T_();
};
...
...
@@ -200,6 +204,7 @@ public:
operatorbool(){returnm;}//!< to drive QBind<TResult,T>() traversal
TImpl*operator->(){Q_ASSERT_X(m,Q_FUNC_INFO,"check operator bool() before calling operator->()");returnm;}
while(srcVal=srcSeq.itemValue(0)){// using item()'s Val<Seq<TSrcResult> would cause an infinite compiler loop to generate corresponding QBind<Val<Seq<Seq<...>>,_> functions
dstVal=dstSeq.itemValue();
while(srcVal=srcSeq._unsafeItem(0)){// using item()'s Val<Seq<TSrcResult> would cause an infinite compiler loop to generate corresponding QBind<Val<Seq<Seq<...>>,_> functions