https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101402
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |SUSPENDED Last reconfirmed| |2021-07-12 Summary|top cv qualifier not |[DR 1001] top cv qualifier |dropped for array type |not dropped for array type |typedef in template class |typedef in template class |(core 1001) | --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to nick huang from comment #0) > This example code from core > 1001(http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1001) is > still giving no matching template declaration error. The issue is still open and has not been resolved yet. > 2. C++ standard requires top level cv qualifier being dropped when forming > function type.(https://timsong-cpp.github.io/cppwp/dcl.fct#5) Yes, that's what the issue quotes, and it also says "It is not clear how or whether this adjustment should be applied to parameters of function templates when the parameter has a dependent type, however." > > 3. When both 'const' are removed from template function and specialization, > there is no error which proves array type works as long as there is no top > level cv qualifier. > > 4. I feel this is rather a high-profile bug as the example code is listed in > active core language issues long ago, The issue is still active, meaning the standard has not been fixed to say what the correct behaviour is.