title: Literate Coding Vs. std::pair, solutions?
body: <p>As most programmers I admire and try to follow the principles of Literate programming, but in C++ I routinely find myself using <code>std::pair</code>, for a gazillion common tasks. But <code>std::pair</code> is, IMHO, a vile enemy of literate programming...</p>
  
  <p>My point is when I come back to code I've written a day or two ago, and I see manipulations of a <code>std::pair</code> (typically as an iterator) I wonder to myself "<em>what did iter->first and iter->second mean???</em>".</p>
  
  <p>I'm guessing others have the same doubts when looking at their <code>std::pair</code> code, so I was wondering, has anyone come up with some good solutions to recover literacy when using <code>std::pair</code>?</p>