erichkeane wrote:

> This attempts to fix #26078. However I have couple of fundamental questions 
> with the 7.1.5 consexpr note "[ Note: An explicit specialization can differ 
> from the template declaration with respect to the constexpr specifier. — end 
> note ]"

Current quote: https://eel.is/c++draft/dcl.constexpr#note-1 is the same.
> 
>     1. Does it also apply to member specializations which are not function 
> templates themselves ? (as in the example https://godbolt.org/z/c4bYY8rxb)

I read that to do so, yes.  It applies to ALL templates.  An explicit 
specialization can change the constexpr/constevalness.

> 
>     2. if yes, then should it also apply to special member functions ? 
> (constructors, destructors)

I would say yes, it should. Any templated SMFs also can have it changed with an 
explicit specialization.

This is actually related to a topic that came up for Reflection last week in 
EWG.  An 'explicit specialization' is a morally different 'entity'.  So it is 
allowed to change quite a bit more from the primary template than we might 
otherwise expect.  In this case, it is allowed to add/remove 
constexpr/consteval.

https://github.com/llvm/llvm-project/pull/145272
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to