std::experimental::reflect::ObjectSequence
来自cppreference.com
< cpp | experimental | reflect
定义于头文件 <experimental/reflect>
|
||
template< class T > concept bool ObjectSequence = Object<T> && /* see below */; |
(反射 TS) | |
ObjectSequence
概念为元对象序列类型所满足。
元对象序列类型是从生成序列的元对象操作,如 get_data_members
获得的元对象类型。元对象序列类型中的每个元素均为元对象类型。
示例
运行此代码
#include<type_traits> #include<tuple> #include<cmath> #include<experimental/reflect> using 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>>; 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, ""); }
参阅
本节未完成 原因:模板化 |