title: Detecting the Concepts TS with GCC 6.1
body: <p>How can I detect the presence of the Concepts TS with GCC 6.1?</p>
  
  <p><a href="http://en.cppreference.com/w/cpp/experimental/feature_test" rel="nofollow">This page</a> suggests that the macro <code>__cpp_experimental_concepts</code> should be predefined in a Concepts TS-supporting implementation. However, the following test program compiles without error on GCC 6.1 with the <code>-fconcepts</code> flag:</p>
  
  <pre><code>#ifdef __cpp_experimental_concepts
  static_assert(false, "Concepts TS found");
  #endif
  
  template &lt;typename T&gt;
  concept bool Identity = true;
  
  int main() {}
  </code></pre>
  
  <p>(I would expect either the <code>static_assert</code> to fire, or the <code>concept</code> keyword to go unrecognised.)</p>
  
  <p>Does anyone know of any other method to conditionally compile code based on whether Concepts are available?</p>