@@ -135,7 +135,7 @@ namespace sqlite {
135
135
value_type (database_binder *_binder): _binder(_binder) {};
136
136
template <class T >
137
137
typename std::enable_if<is_sqlite_value<T>::value, value_type &>::type operator >>(T &result) {
138
- get_col_from_db (_binder->_stmt .get (), next_index++, result );
138
+ result = get_col_from_db (_binder->_stmt .get (), next_index++, result_type<T>() );
139
139
return *this ;
140
140
}
141
141
template <class ...Types>
@@ -558,16 +558,20 @@ namespace sqlite {
558
558
sqlite3_value** vals,
559
559
Values&&... values
560
560
) {
561
- typename std::remove_cv<
561
+ using arg_type = typename std::remove_cv<
562
562
typename std::remove_reference<
563
563
typename utility::function_traits<
564
564
typename Functions::first_type
565
565
>::template argument<sizeof ...(Values)>
566
566
>::type
567
- >::type value{};
568
- get_val_from_db (vals[sizeof ...(Values) - 1 ], value);
567
+ >::type;
569
568
570
- step<Count, Functions>(db, count, vals, std::forward<Values>(values)..., std::move (value));
569
+ step<Count, Functions>(
570
+ db,
571
+ count,
572
+ vals,
573
+ std::forward<Values>(values)...,
574
+ get_val_from_db (vals[sizeof ...(Values) - 1 ], result_type<arg_type>()));
571
575
}
572
576
573
577
template <
@@ -618,14 +622,18 @@ namespace sqlite {
618
622
sqlite3_value** vals,
619
623
Values&&... values
620
624
) {
621
- typename std::remove_cv<
625
+ using arg_type = typename std::remove_cv<
622
626
typename std::remove_reference<
623
627
typename utility::function_traits<Function>::template argument<sizeof ...(Values)>
624
628
>::type
625
- >::type value{};
626
- get_val_from_db (vals[sizeof ...(Values)], value);
627
-
628
- scalar<Count, Function>(db, count, vals, std::forward<Values>(values)..., std::move (value));
629
+ >::type;
630
+
631
+ scalar<Count, Function>(
632
+ db,
633
+ count,
634
+ vals,
635
+ std::forward<Values>(values)...,
636
+ get_val_from_db (vals[sizeof ...(Values)], result_type<arg_type>()));
629
637
}
630
638
631
639
template <
0 commit comments