title: strange std::vector problem with uint32_t on Visual Studio 2008
body: <p>This works fine:  </p>
  
  <pre><code>std::vector&lt;int&gt; v;  
  v.push_back(123);
  </code></pre>
  
  <p>but this throws a std::length_error:  </p>
  
  <pre><code>std::vector&lt;uint32_t&gt; v;// or vector&lt;unsigned __int32&gt;  
  v.push_back(123);
  </code></pre>
  
  <p>It seems to be triggered by resizing, because  </p>
  
  <pre><code>std::vector&lt;uint32_t&gt; v;  
  v.reserve(2);  
  </code></pre>
  
  <p>triggers a debug assertion <code>"iterator not dereferencable"</code>.</p>
  
  <p>This occurs on Visual Studio 2008, but the same code works fine on Mac and Linux.  Can anyone suggest a way to narrow down the search for an explanation?</p>
  
  <p><br/><br/>
  UPDATE:
  The rat's nest of static and dynamically linked dependencies in this project made it too time-consuming to find the offending library.  I gave up and rebuilt every dependency from source.  I lost two days of my life and still don't know exactly where the problem was, but the app runs!  Thanks for your help.</p>