Use of the "memberspace" idiom?
<p>Today I learned about the C++ "memberspace" idiom, which roughly abuses a property of C++ that makes <code>T::bar</code> as well as <code>T.bar</code> work, when <code>T</code> is both a type and an object in some scope. </p>

<pre><code>struct A {
  struct Controls {
    /* put some typedefs/data/functions here */
  } Controls;
};

// Can be used as a type and value
A a;
A::Controls::iterator it = a.Controls.begin();
</code></pre>

<p>Have you ever used this idiom in practice? Have you found it useful? What's some good or the best application of the idiom?</p>
