title: Determine if a type is an STL container at compile time
body: <p>I would like to write a template that will determine if a type is an stl container at compile time.&nbsp;&nbsp;</p>
  
  <p>I've got the following bit of code:</p>
  
  <pre><code>struct is_cont{};
  struct not_cont{};
  
  template &lt;typename T&gt;
  struct is_cont { typedef not_cont result_t; };
  </code></pre>
  
  <p>but I'm not sure how to create the necessary specializations for <code>std::vector&lt;T,Alloc&gt;, deque&lt;T,Alloc&gt;, set&lt;T,Alloc,Comp&gt;</code> etc...</p>