title: Compile error using boost::concept_check
body: <p>I'm trying to compile simple example to use the boost concept_check</p>
  
  <p>Code is as follow:</p>
  
  <pre><code>#include &lt;vector&gt;
  #include &lt;complex&gt;
  #include &lt;algorithm&gt;
  #include &lt;boost/iterator.hpp&gt;
  #include &lt;boost/concept_check.hpp&gt;
  
  template &lt;class foo&gt; 
  void my_do_sort(std::vector&lt;foo&gt;&amp; v) 
  {
    BOOST_CONCEPT_ASSERT((RandomAccessIterator&lt;foo&gt;));
    std::stable_sort(v.begin(),v.end())
  }
  int main()
  {
    std::vector&lt;std::complex&lt;double&gt; &gt; v;
    v.push_back(std::complex&lt;double&gt;(1,3));
    v.push_back(std::complex&lt;double&gt;(2,4));
    my_do_sort(v);
  }
  </code></pre>
  
  <p>I then get the following error:</p>
  
  <pre><code>g++ -I~/tmp/BOOST/boost_1_39_0 -g3 -ggdb -pedantic -pedantic-errors -Wall -Werror -O0 --save-temps con1.cpp -o con1     
  con1.cpp: In function 'void my_do_sort(std::vector&lt;foo, std::allocator&lt;_CharT&gt; &gt;&amp;)':
  con1.cpp:11: error: `*' cannot appear in a constant-expression
  con1.cpp:11: error: a call to a constructor cannot appear in a constant-expression
  con1.cpp:11: error: template argument 1 is invalid
  con1.cpp:11: error: template argument 1 is invalid
  con1.cpp:11: error: invalid type in declaration before ';' token
  make: *** [con1] Error 1
  </code></pre>
  
  <p>Thanks</p>