7 #if !defined(CNL_IMPL_WRAPPER_SET_REP_H)
8 #define CNL_IMPL_WRAPPER_SET_REP_H
10 #include "../num_traits/set_rep.h"
11 #include "definition.h"
12 #include "is_wrapper.h"
15 #include <type_traits>
20 template<
typename NumberRep,
typename Rep>
21 struct set_rep<_impl::wrapper<NumberRep>, Rep> : std::type_identity<_impl::wrapper<Rep>> {
26 template<
typename ArchetypeRep,
class ArchetypeTag, _impl::any_wrapper Rep>
27 requires(!_impl::can_convert_tag_family<ArchetypeTag, _impl::tag_of_t<Rep>>::value)
struct set_rep<_impl::wrapper<ArchetypeRep, ArchetypeTag>, Rep>
28 : std::type_identity<_impl::wrapper<Rep, ArchetypeTag>> {
32 template<
typename ArchetypeRep,
class ArchetypeTag, _impl::any_wrapper Rep>
33 requires(_impl::can_convert_tag_family<ArchetypeTag, _impl::tag_of_t<Rep>>::value)
struct set_rep<_impl::wrapper<ArchetypeRep, ArchetypeTag>, Rep>
34 : std::type_identity<Rep> {
39 #endif // CNL_IMPL_WRAPPER_SET_REP_H