Listing 4: basic_search_sequence_const_iterator methods.
template< typename C , typename T , typename V >
inline class_type &basic_search_sequence_const_iterator<C, T, V>::operator ++()
{
recls_message_assert("Attempting to increment invalid iterator",
NULL != m_hSrch);
if(RECLS_FAILED(Recls_GetNext(m_hSrch)))
{
Recls_SearchClose(m_hSrch);
m_hSrch = NULL;
}
return *this;
}
template< typename C , typename T , typename V >
inline value_type
basic_search_sequence_const_iterator<C, T, V>::operator *() const
{
entry_type info;
if( m_hSrch != NULL &&
RECLS_SUCCEEDED(traits_type::GetDetails(m_hSrch, &info)))
{
return value_type(info);
}
else
{
recls_message_assert("Dereferencing end()-valued iterator", 0);
return value_type();
}
}