@@ -186,19 +186,6 @@ namespace sqlpp
186
186
using _impl = detail::result_row_impl<Db, _field_index_sequence, FieldSpecs...>;
187
187
bool _is_valid;
188
188
189
- template <typename D, typename ... Fs>
190
- static constexpr auto is_compatible (detail::type_vector<result_row_t <D, Fs...>>) ->
191
- typename std::enable_if<sizeof...(Fs) == sizeof...(FieldSpecs), bool>::type
192
- {
193
- return logic::all_t <FieldSpecs::is_compatible (Fs{})...>::value;
194
- }
195
-
196
- template <typename D, typename ... Fs>
197
- static constexpr auto is_compatible (detail::type_vector<result_row_t <D, Fs...>>) ->
198
- typename std::enable_if<sizeof...(Fs) != sizeof...(FieldSpecs), bool>::type
199
- {
200
- return false ;
201
- }
202
189
result_row_t () : _impl(), _is_valid(false )
203
190
{
204
191
}
@@ -264,6 +251,20 @@ namespace sqlpp
264
251
}
265
252
};
266
253
254
+ template <typename Lhs, typename Rhs, typename Enable = void >
255
+ struct is_result_compatible
256
+ {
257
+ static constexpr auto value = false ;
258
+ };
259
+
260
+ template <typename LDb, typename ... LFields, typename RDb, typename ... RFields>
261
+ struct is_result_compatible <result_row_t <LDb, LFields...>,
262
+ result_row_t <RDb, RFields...>,
263
+ typename std::enable_if<sizeof ...(LFields) == sizeof ...(RFields)>::type>
264
+ {
265
+ static constexpr auto value = logic::all_t <LFields::is_compatible(RFields{})...>::value;
266
+ };
267
+
267
268
template <typename Db, typename ... FieldSpecs>
268
269
struct dynamic_result_row_t
269
270
: public detail::result_row_impl<Db, detail::make_field_index_sequence<0 , FieldSpecs...>, FieldSpecs...>
0 commit comments