E.V.E
v2023.02.15
 
Loading...
Searching...
No Matches
eve::like Concept Reference

Specifies semantic compatibility between wrapper/wrapped types. More...

#include <eve/traits/product_type.hpp>

Detailed Description

Required header: #include <eve/traits/product_type.hpp>

eve::like<Wrapper, T> is a concept that indicates that a wrapper type provides most of the functionality of another type T. By definition T always models eve::like<T>.

A Wrapper models like< Wrapper, T> if it either defines an internal type is_like that evaluates to T or eve::supports_like<Wrapper,T> is specialized to evaluates to T.

Examples

Concept definition

template<typename Wrapper, typename Self>
concept eve::like = std::same_as<std::remove_cvref_t<Wrapper>, Self> ||
supports_like<std::remove_cvref_t<Wrapper>, Self>::value
Specifies semantic compatibility between wrapper/wrapped types.
Definition product_type.hpp:107