Title
[fund.ts.v2] conjunction and disjunction requirements are too strict
Status
open
Section
[meta.logical]
Submitter
Tim Song

Created on 2015-12-11.00:00:00 last changed 82 months ago

Messages

Date: 2016-08-02.17:30:37

[ 2016-08 Chicago ]

Ville provided wording for both 2569 and 2570.

Tuesday AM: Move to Tentatively Ready

Date: 2016-06-28.13:53:39

[ 2016-06 Oulu ]

Alisdair has a paper in progress addressing this

Date: 2015-12-11.00:00:00

Addresses: fund.ts.v2

[meta.logical]/2 and /5 impose the following requirement on the arguments of conjunction and disjunction:

Every template type argument shall be usable as a base class and shall have a static data member value which is convertible to bool, is not hidden, and is unambiguously available in the type.

Since the requirement is unconditional, it applies even to type arguments whose instantiation is not required due to short circuiting. This seems contrary to the design intent, expressed in P0013R1, that it is valid to write conjunction_v<is_class<T>, is_foo<T>> even if instantiating is_foo<T>::value is ill-formed for non-class types.

History
Date User Action Args
2017-07-30 20:10:41adminsetstatus: wp -> open
2016-11-14 03:59:28adminsetstatus: pending -> wp
2016-11-14 03:55:22adminsetstatus: ready -> pending
2016-08-02 17:30:37adminsetstatus: new -> ready
2016-08-02 13:02:46adminsetmessages: + msg8303
2016-06-28 13:53:39adminsetmessages: + msg8215
2015-12-11 00:00:00admincreate