;Base&gt;::value_type
         else
             return Value

   <span class="bold"><strong>C'</strong></span> = if (CategoryOrTraversal is use_default)
             return iterator_traversal&lt;Base&gt;::type
         else
             return CategoryOrTraversal

   <span class="bold"><strong>R'</strong></span> = if (Reference is use_default)
             if (Value is use_default)
                 return iterator_traits&lt;Base&gt;::reference
             else
                 return Value&amp;
         e