Section: 23.15 [meta] Status: C++17 Submitter: Tim Song Opened: 2016-01-07 Last modified: 2017-07-30
View other active issues in [meta].
View all other issues in [meta].
View all issues with C++17 status.
220.127.116.11 [res.on.functions]/2.5 says that the behavior is undefined "if an incomplete type is used as a template argument when instantiating a template component, unless specifically allowed for that component."This rule should not apply to type traits — a literal application would make is_same<void, void> undefined behavior, since nothing in 23.15 [meta] (or elsewhere) "specifically allows" instantiating is_same with incomplete types. Traits that require complete types are already explicitly specified as such, so the proposed wording below simply negates 18.104.22.168 [res.on.functions]/2.5 for 23.15 [meta].
[2016-02, Issues Telecon]
P0; move to Tentatively Ready.
This wording is relative to N4567.
Insert a new paragraph after 23.15.2 [meta.type.synop]/1: