@@ -285,8 +285,6 @@ namespace sqlite {
285
285
#endif
286
286
287
287
288
- template <typename T> friend database_binder& operator <<(database_binder& db, const T& val);
289
- template <typename T> friend void get_col_from_db (database_binder& db, int inx, T& val);
290
288
/* for vector<T, A> support */
291
289
template <typename T, typename A> friend database_binder& operator <<(database_binder& db, const std::vector<T, A>& val);
292
290
template <typename T, typename A> friend void get_col_from_db (database_binder& db, int inx, std::vector<T, A>& val);
@@ -848,6 +846,29 @@ namespace sqlite {
848
846
inline void store_result_in_db (sqlite3_context* db, const std::u16string& val) {
849
847
sqlite3_result_text16 (db, val.data (), -1 , SQLITE_TRANSIENT);
850
848
}
849
+
850
+ // Other integer types
851
+ template <class Integral , class = typename std::enable_if<std::is_integral<Integral>::value>::type>
852
+ inline database_binder& operator <<(database_binder& db, const Integral& val) {
853
+ return db << static_cast <sqlite3_int64>(val);
854
+ }
855
+ template <class Integral , class = std::enable_if<std::is_integral<Integral>::type>>
856
+ inline void store_result_in_db (sqlite3_context* db, const Integral& val) {
857
+ store_result_in_db (db, static_cast <sqlite3_int64>(val));
858
+ }
859
+ template <class Integral , class = typename std::enable_if<std::is_integral<Integral>::value>::type>
860
+ inline void get_col_from_db (database_binder& db, int inx, Integral& val) {
861
+ sqlite3_int64 i;
862
+ get_col_from_db (db, inx, i);
863
+ val = i;
864
+ }
865
+ template <class Integral , class = typename std::enable_if<std::is_integral<Integral>::value>::type>
866
+ inline void get_val_from_db (sqlite3_value *value, Integral& val) {
867
+ sqlite3_int64 i;
868
+ get_val_from_db (value, i);
869
+ val = i;
870
+ }
871
+
851
872
// std::optional support for NULL values
852
873
#ifdef MODERN_SQLITE_STD_OPTIONAL_SUPPORT
853
874
template <typename OptionalT> inline database_binder& operator <<(database_binder& db, const std::optional<OptionalT>& val) {
0 commit comments