https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105436

--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
The C++14 vs C++17 difference is due to:

  /* It must be a non-type argument.  In C++17 any constant-expression is
     allowed.  */
  if (cxx_dialect > cxx14)
    goto general_expr;

in cp_parser_template_argument.  So in C++14 we get "N" as the targ but in
C++17 it is the whole "N >= 5" expression.

Reply via email to