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();
  }
}