This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Resolved status.

3134. [fund.ts.v3] LFTSv3 contains extraneous [meta] variable templates that should have been deleted by P09961

Section: 3.3.1 [fund.ts.v3::meta.type.synop] Status: Resolved Submitter: Thomas Köppe Opened: 2018-07-02 Last modified: 2018-11-13

Priority: 0

View all other issues in [fund.ts.v3::meta.type.synop].

View all issues with Resolved status.

Discussion:

Addresses: fund.ts.v3

The LFTSv3 prospective-working-paper N4758 lists a large number of type trait variable templates in [meta.type.synop] that are duplicates of corresponding ones in C++17. The paper P0996R1 that was meant to rebase the LFTS on C++17 appears to have missed them.

[2018-07-20 Status to Tentatively Ready after five positive votes on the reflector.]

[2018-11-11 Resolved by P1210R0, adopted in San Diego.]

Proposed resolution:

This wording is relative to N4758.

  1. Delete from 3.3.1 [fund.ts.v3::meta.type.synop] all variable templates starting at is_void_v up to and including is_convertible_v as indicated:

    #include <type_traits>
    
    namespace std::experimental {
    inline namespace fundamentals_v3 {
    
      // See C++17 §23.15.4.1, primary type categories
      template <class T> constexpr bool is_void_v
        = is_void<T>::value;
      […]
      template <class From, class To> constexpr bool is_convertible_v
        = is_convertible<From, To>::value;
    
      // 3.3.2, Other type transformations
      template <class> class invocation_type; // not defined
      […]
    } // inline namespace fundamentals_v3
    } // namespace std::experimental