title: C++ conditional template type with template functions error
body: <p>I have such piece of code</p>
  
  <pre><code>    namespace bg = boost::geometry;
      typedef typename std::conditional&lt;highDimension,
                                      typename bg::model::point&lt;double, 6, bg::cs::cartesian&gt;,
                                      typename bg::model::point&lt;double, 5, bg::cs::cartesian&gt;&gt;::type point;
      ..........
      point p;                    
      p.set&lt;0&gt;(0);
      p.set&lt;1&gt;(0);
      p.set&lt;2&gt;(0);
      ..........
  </code></pre>
  
  <p>GCC show me a lot of errors like "error: invalid operands of types '' and 'int' to binary   'operator&lt;'
        p.set&lt;1>(col.a());" So it just try to 'compare' <code>p.set</code> and <code>1</code></p>
  
  <p>The boost class really has template function set, but compiler don't use it as function.</p>
  
  <p>If i make typedef directly from boost type, like <code>typedef bg::model::point&lt;double, 5, bg::cs::cartesian&gt; point;</code> everything works fine.</p>
  
  <p>I just want to select different dimension sizes depending on template argument <code>highDimension</code>. But now I have no idea how to force GCC understand me :)</p>