Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::reflect::Object&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help