- Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 
| std::experimental::reflect::Object(3) | C++ Standard Libary | std::experimental::reflect::Object(3) | 
NAME¶
std::experimental::reflect::Object - std::experimental::reflect::Object
Synopsis¶
 Defined in header <experimental/reflect>
  
   template< class T > (reflection TS)
  
   concept Object = /* see below */;
  
   The Object concept is satisfied if and only if T is a meta-object type.
Example¶
// Run this code
  
   #include <experimental/reflect>
  
   namespace reflect = std::experimental::reflect;
  
   template<reflect::Object M>
  
   struct meta_t {
  
   template<reflect::Object M1>
  
   friend constexpr bool operator==(meta_t, meta_t<M1>) noexcept
  
   {
  
   return reflect::reflects_same_v<M, M1>;
  
   }
  
   template<reflect::Object M1>
  
   friend constexpr bool 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>; // error: int is not a meta-object type
  
   }
| 2024.06.10 | http://cppreference.com |