Explicit instantiation and trailing requires-clauses
13.9.3 [temp.explicit]
Davis Herring

Created on 2021-08-09.00:00:00 last changed 1 week ago


Date: 2021-11-15.00:00:00

Notes from the November, 2021 teleconference:

Issue 2488 is being reopened due to subsequent comments.

Date: 2021-08-09.00:00:00

CWG determined that issue 2488 was not a defect. However, the discussion uncovered an issue regarding the handling of an explicit instantiation of a class template containing such members. According to 13.9.3 [temp.explicit] paragraph 10,

An explicit instantiation that names a class template specialization is also an explicit instantiation of the same kind (declaration or definition) of each of its direct non-template members that has not been previously explicitly specialized in the translation unit containing the explicit instantiation, provided that the associated constraints, if any, of that member are satisfied by the template arguments of the explicit instantiation (13.5.3 [temp.constr.decl], 13.5.2 [temp.constr.constr]), except as described below.

Paragraph 12 says,

An explicit instantiation of a prospective destructor (11.4.7 [class.dtor]) shall correspond to the selected destructor of the class.

Perhaps the virtual and constrained members could be handled in an analogous fashion.

Date User Action Args
2021-11-15 00:00:00adminsetmessages: + msg6558
2021-08-09 00:00:00admincreate