2738. is_constructible with void types

Section: 21.3.5.4 [meta.unary.prop] Status: C++17 Submitter: S. B. Tam Opened: 2016-06-22 Last modified: 2017-07-30

Priority: Not Prioritized

View other active issues in [meta.unary.prop].

View all other issues in [meta.unary.prop].

View all issues with C++17 status.

Discussion:

LWG 2560 mention that there is no variable of function type. There's also no variable of void type, so should 21.3.5.4 [meta.unary.prop] also explicitly say that for a void type T, is_constructible<T, Args...>::value is false?

[2016-07-03, Daniel provides wording]

[2016-08 Chicago]

Wed PM: Move to Tentatively Ready

Proposed resolution:

This wording is relative to N4594.

  1. Change 21.3.5.4 [meta.unary.prop], Table 52 — "Type property predicates", as indicated:

    Table 52 — Type property predicates
    Template Condition Preconditions
    template <class T, class... Args>
    struct is_constructible;
    For a function type T
    or for a (possibly cv-qualified) void type T,
    is_constructible<T, Args...>::value
    is false, otherwise see below
    T and all types in the
    parameter pack Args shall
    be complete types,
    (possibly cv-qualified)
    void, or arrays of
    unknown bound.