home | help
std::experi...ect::Object(3)   C++ Standard Libary  std::experi...ect::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
      }

http://cppreference.com 	   2024.06.10	    std::experi...ect::Object(3)

home | help