std::experimental::reflect::Object
来自cppreference.com
                    
                                        
                    < 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 不是元对象类型 }