aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conanfile.txt2
-rw-r--r--source/20-codegen-compiler/SQLiteHelper.hpp11
2 files changed, 8 insertions, 5 deletions
diff --git a/conanfile.txt b/conanfile.txt
index 5aed61c..74f308d 100644
--- a/conanfile.txt
+++ b/conanfile.txt
@@ -1,4 +1,6 @@
[requires]
+fmt/9.0.0
+spdlog/1.10.0
cxxopts/3.0.0
glad/0.1.34
assimp/5.2.2
diff --git a/source/20-codegen-compiler/SQLiteHelper.hpp b/source/20-codegen-compiler/SQLiteHelper.hpp
index c33c2a3..5e6222d 100644
--- a/source/20-codegen-compiler/SQLiteHelper.hpp
+++ b/source/20-codegen-compiler/SQLiteHelper.hpp
@@ -111,11 +111,11 @@ struct SQLiteRunningStatement {
}
template <typename... Ts>
- void BindArguments(Ts... args) {
+ void BindArguments(Ts&&... args) {
// NOTE: SQLite3 argument index starts at 1
size_t idx = 1;
- auto HandleEachArgument = [this, &idx](auto arg) {
- BindArgument(idx, arg);
+ auto HandleEachArgument = [this, &idx]<typename T>(T&& arg) {
+ BindArgument(idx, std::forward<T>(arg));
++idx;
};
(HandleEachArgument(std::forward<Ts>(args)), ...);
@@ -139,6 +139,7 @@ struct SQLiteRunningStatement {
sqlite3_errmsg(sqlite3_db_handle(stmt)));
throw std::runtime_error(msg);
}
+ return err;
}
void StepUntilDone() {
@@ -171,9 +172,9 @@ struct SQLiteRunningStatement {
auto value = sqlite3_column_int64(stmt, column);
return static_cast<T>(value);
} else if constexpr (std::is_same_v<T, int>) {
- return sqlite3_column_int(stmt, column);
+ return (int)sqlite3_column_int(stmt, column);
} else if constexpr (std::is_same_v<T, int64_t>) {
- return sqlite3_column_int64(stmt, column);
+ return (int64_t)sqlite3_column_int64(stmt, column);
} else if constexpr (std::is_same_v<T, const char*>) {
return (const char*)sqlite3_column_text(stmt, column);
} else if constexpr (std::is_same_v<T, std::string> || std::is_same_v<T, std::string_view>) {