| Technical Specification | ||||
| Filesystem library(filesystem TS) | ||||
| Library fundamentals(library fundamentals TS) | ||||
| Library fundamentals 2(library fundamentals TS v2) | ||||
| Library fundamentals 3(library fundamentals TS v3) | ||||
| Extensions for parallelism(parallelism TS) | ||||
| Extensions for parallelism 2(parallelism TS v2) | ||||
| Extensions for concurrency(concurrency TS) | ||||
| Extensions for concurrency 2(concurrency TS v2) | ||||
| Concepts(concepts TS) | ||||
| Ranges(ranges TS) | ||||
| Reflection(reflection TS) | ||||
| Mathematical special functions(special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
| Concepts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Meta-object operations | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <experimental/reflect> | ||
template<class T> concept ObjectSequence= Object<T>&&/* see below */; | (reflection TS) | |
TheObjectSequence concept is satisfied by meta-object sequence types.
A meta-object sequence type is a meta-object type that is obtained from a meta-object operation that generates a sequence, e.g.get_data_members. Each element of a meta-object sequence type is a meta-object type.
#include<cmath>#include<experimental/reflect>#include<tuple>#include<type_traits> namespace reflect= std::experimental::reflect; template<reflect::Typed...Ms>using tuple_from_seq_t=std::tuple<reflect::get_reflected_type_t< reflect::get_type_t<Ms>>...>; template<reflect::Record T>using collect_tuple= reflect::unpack_sequence_t< tuple_from_seq_t, reflect::get_data_members_t<T>>; int main(){ static_assert(reflect::ObjectSequence< reflect::get_data_members<reflexpr(std::div_t)>>,""); static_assert(std::is_same<collect_tuple<reflexpr(std::div_t)>,std::tuple<int,int>>::value,"");}
| This section is incomplete Reason: templatization |