# std::experimental::reflect::Object

< cpp‎ | experimental‎ | reflect

定义于头文件 `<experimental/reflect>` |  |
template< class T > concept bool Object = /* see below */; |  | (反射 TS)

`Object` 概念当且仅当 `T` 为元对象类型才得到满足。

### 示例

    #include<experimental/reflect>

    namespace reflect = std::experimental::reflect;

    template<reflect::Object M>
    struct meta_t {
        template<reflect::Object M1>
        friend constexpr operator==(meta_t, meta_t<M1>) noexcept
        {
            return reflect::reflects_same_v<M, M1>;
        }
        template<reflect::Object M1>
        friend constexpr operator!=(meta_t, meta_t<M1>) noexcept
        {
            return !reflect::reflects_same_v<M, M1>;
        }
    };

    template<reflect::Object M>
    constexpr meta_t<M> meta{};

    int main()
    {
        static_assert(meta<reflexpr(int)> == meta<reflexpr(signed int)>, "");
        // meta<int>; // 错误： int 不是元对象类型
    }