This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of TS status.
Section: 3.3.1 [fund.ts::meta.type.synop] Status: TS Submitter: Joe Gottman Opened: 2014-03-07 Last modified: 2017-07-30
Priority: 0
View all issues with TS status.
Discussion:
Addresses: fund.ts
The library fundamentals specification defines two new type trait template classes: invocation_type
and raw_invocation_type
.
But it does not define the corresponding template aliases. Note that both of these classes define a member typedef type
and no
other public members, so according to the argument in N3887
the template aliases should be defined.
[2013-06-21 Rapperswil]
Accept for Library Fundamentals TS Working Paper
Proposed resolution:
This wording is relative to N3908.
Add the following to section 3.3.1[meta.type.synop] of the Library Fundamentals specification as indicated:
namespace std { namespace experimental { inline namespace fundamentals_v1 { […] // 3.3.2, Other type transformations template <class> class invocation_type; // not defined template <class F, class... ArgTypes> class invocation_type<F(ArgTypes...)>; template <class> class raw_invocation_type; // not defined template <class F, class... ArgTypes> class raw_invocation_type<F(ArgTypes...)>; template <class T> using invocation_type_t = typename invocation_type<T>::type; template <class T> using raw_invocation_type_t = typename raw_invocation_type<T>::type; } // namespace fundamentals_v1 } // namespace experimental } // namespace std