bool CChainTraverser_Generic::ProcessItem (DWORD dwFlags, CChainElement* pElement) { if (dwFlags & CETRAV_FIRST) m_visitor.StartingChain((dwFlags & CETRAV_ASSOC) != 0); bool result = m_visitor(pElement); if (dwFlags & CETRAV_LAST) m_visitor.EndingChain(); return result; }
Result operator()(incomplete_wrapper<T>& v) const { return m_visitor(v.get()); }
Result operator()(T& v) const { return m_visitor(static_cast<const T&>(v)); }