3042. is_literal_type_v should be inline

Section: D.13 [depr.meta.types] Status: Tentatively Ready Submitter: Tim Song Opened: 2017-12-06 Last modified: 2018-01-14

Priority: 0

View all other issues in [depr.meta.types].

View all issues with Tentatively Ready status.


P0607R0 forgot to look at D.13 [depr.meta.types] and make is_literal_type_v inline.

[ 2018-01-08 Moved to Tentatively Ready after 8 positive votes on c++std-lib. ]

Proposed resolution:

This wording is relative to N4713.

  1. Change D.13 [depr.meta.types]p1 as indicated:

    -1- The header <type_traits> has the following addition:

    namespace std {
      template<class T> struct is_literal_type;
      template<class T> inline constexpr bool is_literal_type_v = is_literal_type<T>::value;
      template<class> struct result_of;    // not defined
      template<class Fn, class... ArgTypes> struct result_of<Fn(ArgTypes...)>;
      template<class T> using result_of_t = typename result_of<T>::type;
      template<class T> struct is_pod;
      template<class T> inline constexpr bool is_pod_v = is_pod<T>::value;