# std::experimental::reflect::ObjectSequence

< 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, "");
    }

### 参阅

| 本节未完成 原因：模板化