@@ -207,8 +207,8 @@ namespace sqlite {
207
207
|| std::is_same<std::u16string, Type>::value
208
208
|| std::is_same<sqlite_int64, Type>::value
209
209
> { };
210
- template <typename Type>
211
- struct is_sqlite_value < std::vector<Type> > : public std::integral_constant<
210
+ template <typename Type, typename Allocator >
211
+ struct is_sqlite_value < std::vector<Type, Allocator > > : public std::integral_constant<
212
212
bool ,
213
213
std::is_floating_point<Type>::value
214
214
|| std::is_integral<Type>::value
@@ -218,9 +218,9 @@ namespace sqlite {
218
218
219
219
template <typename T> friend database_binder& operator <<(database_binder& db, const T& val);
220
220
template <typename T> friend void get_col_from_db (database_binder& db, int inx, T& val);
221
- /* for vector<T> support */
222
- template <typename T> friend database_binder& operator <<(database_binder& db, const std::vector<T>& val);
223
- template <typename T> friend void get_col_from_db (database_binder& db, int inx, std::vector<T>& val);
221
+ /* for vector<T, A > support */
222
+ template <typename T, typename A > friend database_binder& operator <<(database_binder& db, const std::vector<T, A >& val);
223
+ template <typename T, typename A > friend void get_col_from_db (database_binder& db, int inx, std::vector<T, A >& val);
224
224
/* for nullptr & unique_ptr support */
225
225
friend database_binder& operator <<(database_binder& db, std::nullptr_t );
226
226
template <typename T> friend database_binder& operator <<(database_binder& db, const std::unique_ptr<T>& val);
@@ -461,8 +461,8 @@ namespace sqlite {
461
461
}
462
462
}
463
463
464
- // vector<T>
465
- template <typename T> inline database_binder& operator <<(database_binder& db, const std::vector<T>& vec) {
464
+ // vector<T, A >
465
+ template <typename T, typename A > inline database_binder& operator <<(database_binder& db, const std::vector<T, A >& vec) {
466
466
void const * buf = reinterpret_cast <void const *>(vec.data ());
467
467
int bytes = vec.size () * sizeof (T);
468
468
int hresult;
@@ -472,13 +472,13 @@ namespace sqlite {
472
472
++db._inx ;
473
473
return db;
474
474
}
475
- template <typename T> inline void get_col_from_db (database_binder& db, int inx, std::vector<T>& vec) {
475
+ template <typename T, typename A > inline void get_col_from_db (database_binder& db, int inx, std::vector<T, A >& vec) {
476
476
if (sqlite3_column_type (db._stmt .get (), inx) == SQLITE_NULL) {
477
477
vec.clear ();
478
478
} else {
479
479
int bytes = sqlite3_column_bytes (db._stmt .get (), inx);
480
480
T const * buf = reinterpret_cast <T const *>(sqlite3_column_blob (db._stmt .get (), inx));
481
- vec = std::vector<T>(buf, buf + bytes/sizeof (T));
481
+ vec = std::vector<T, A >(buf, buf + bytes/sizeof (T));
482
482
}
483
483
}
484
484
0 commit comments