title: When is a requires clause expression required to be parenthesised? (pun by accident)
body: <p>This gives an error:</p>
  
  <pre><code>template &lt;class T, T A, T B&gt;
      requires A &gt; B             // &lt;-- error
  class X{};
  </code></pre>
  
  <blockquote>
    <p>error: parentheses are required around this expression in a requires
    clause</p>
  
  <pre><code>requires A &lt; B
  
           ~~^~~
  
           (    )
  </code></pre>
  </blockquote>
  
  <p>Almost all operators give this error (<code>requires A &gt; B</code>, <code>requires A == B</code>, <code>requires A &amp; B</code>, <code>requires !A</code>)</p>
  
  <p>However <code>&amp;&amp;</code> and <code>||</code> seem to work:</p>
  
  <pre><code>template &lt;class T, T A, T B&gt;
      requires A &amp;&amp; B             // &lt;-- ok
  class X{};
  </code></pre>
  
  <hr>
  
  <p><em>Testes with gcc trunk and clang trunk (on May 2020) on godbolt. Both compilers give the same results.</em></p>