@@ -207,8 +207,8 @@ namespace sqlite {
207207 || std::is_same<std::u16string, Type>::value
208208 || std::is_same<sqlite_int64, Type>::value
209209 > { };
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<
212212 bool ,
213213 std::is_floating_point<Type>::value
214214 || std::is_integral<Type>::value
@@ -218,9 +218,9 @@ namespace sqlite {
218218
219219 template <typename T> friend database_binder& operator <<(database_binder& db, const T& val);
220220 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);
224224 /* for nullptr & unique_ptr support */
225225 friend database_binder& operator <<(database_binder& db, std::nullptr_t );
226226 template <typename T> friend database_binder& operator <<(database_binder& db, const std::unique_ptr<T>& val);
@@ -461,8 +461,8 @@ namespace sqlite {
461461 }
462462 }
463463
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) {
466466 void const * buf = reinterpret_cast <void const *>(vec.data ());
467467 int bytes = vec.size () * sizeof (T);
468468 int hresult;
@@ -472,13 +472,13 @@ namespace sqlite {
472472 ++db._inx ;
473473 return db;
474474 }
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) {
476476 if (sqlite3_column_type (db._stmt .get (), inx) == SQLITE_NULL) {
477477 vec.clear ();
478478 } else {
479479 int bytes = sqlite3_column_bytes (db._stmt .get (), inx);
480480 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));
482482 }
483483 }
484484
0 commit comments