C++ - Significance of local names for types
<p>I recently read up how classes are allowed to define their own local names for types. One of the famous examples being <code>size_type</code>, provided almost by all STL containers. It was also mentioned that doing so helps hide implementation details from the user of the class. I am not quite sure how this is the case.</p>

<p>What are some examples where defining local names for types might be useful and how doing so hides implementation details?</p>