Type requirements for std::list
<p>I've got a type that can't be moved or copied (by making the necessary constructors and operators private). But when I tried to compile a std::list of them, the operation failed with a very strange error (class name snipped for brevity).</p>

<pre><code>1&gt;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmemory(202)
: error C2248: 'T::T' : cannot access private member declared in class 'T'
</code></pre>

<p>Surely it's not incumbent of a type in a linked list to be movable or copyable.</p>

<p>When these members are made public, the code compiles fine- even though, if the std::list had tried to access them, it would be an unresolved external, since they're only declared private. Makes no sense :(</p>
