title: template template parameters with boost::fast_pool_allocator
body: <p>Why doesn't this compile:</p>
  
  <pre><code>std::map&lt;int, int, std::less&lt;int&gt;, boost::fast_pool_allocator&lt; std::pair&lt; int, int &gt; &gt; a_Test;
  </code></pre>
  
  <p>but this compiles fine:</p>
  
  <pre><code>typedef boost::fast_pool_allocator&lt; std::pair&lt; int, int &gt; &gt; fast_alloc;
  std::map&lt;int, int, std::less&lt;int&gt;, fast_alloc &gt; a_Test;
  </code></pre>
  
  <p>A separate question: as far as I can see in the definition of <code>boost::fast_pool_allocator</code> it takes four non-defaulted template parameters, but in the example above it works fine. Can anyone please explain the reason for this? Thanks!</p>