-
Notifications
You must be signed in to change notification settings - Fork 4
Closed
cplusplus/draft
#3443Labels
Milestone
Description
A declaration redeclares a constrained function if its requires-clause is equivalent. No atomic constraint expression can be equivalent to any other unless it is accessed via a concept (even within a single translation unit); for functions with no template parameters, all requires-clauses are functionally equivalent to either "requires true" or "requires false". In either case, the program is ill-formed NDR because of constructs that are functionally equivalent but not equivalent.
Proposed change:
Document these severe restrictions, change the definition of (functionally) equivalent for atomic constraints to rely on the ODR, and/or eagerly evaluate non-dependent (portions of) constraints.