@@ -113,27 +113,19 @@ namespace rtl {
113113
114114
115115 template <class _recordType , class ..._signature>
116- inline constexpr const access::Function
117- Builder<TypeQ::Mute>::build(enable_if_same<_recordType&, typename detail::TypeId<_signature...>::HEAD > *_) const
116+ inline constexpr const access::Function Builder<TypeQ::Mute>::build() const
118117 {
119- return buildCopyConstructor<_recordType, _signature...>();
120- }
121-
122-
123- template <class _recordType , class ..._signature>
124- inline constexpr const access::Function
125- Builder<TypeQ::Mute>::build(enable_if_same<const _recordType&, typename detail::TypeId<_signature...>::HEAD > *_) const
126- {
127- return buildConstCopyConstructor<_recordType, _signature...>();
128- }
129-
130-
131- template <class _recordType , class ..._signature>
132- inline constexpr const access::Function
133- Builder<TypeQ::Mute>::build(enable_if_not_same<_recordType&, typename detail::TypeId<_signature...>::HEAD > *_,
134- enable_if_not_same<const _recordType&, typename detail::TypeId<_signature...>::HEAD > *__) const
135- {
136- return buildConstructor<_recordType, _signature...>();
118+ if constexpr (std::is_same_v<_recordType&, typename detail::TypeId<_signature...>::HEAD>)
119+ {
120+ return buildCopyConstructor<_recordType, _signature...>();
121+ }
122+ else if constexpr (std::is_same_v<const _recordType&, typename detail::TypeId<_signature...>::HEAD>)
123+ {
124+ return buildConstCopyConstructor<_recordType, _signature...>();
125+ }
126+ else {
127+ return buildConstructor<_recordType, _signature...>();
128+ }
137129 }
138130
139131
0 commit comments