From d0e3c71b91f1a1c1780158789fd42b8ac7209495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?louiz=E2=80=99?= Date: Sat, 17 Mar 2018 17:28:41 +0100 Subject: Revert "Use if constexpr to make things a lot more readable" This reverts commit d62ca9f87906be6f046fe9d07afb8bfb69c166e3. --- src/database/query.hpp | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) (limited to 'src/database/query.hpp') diff --git a/src/database/query.hpp b/src/database/query.hpp index 2a2d2d4..1c4a5ff 100644 --- a/src/database/query.hpp +++ b/src/database/query.hpp @@ -13,12 +13,12 @@ void actual_bind(Statement& statement, const std::string& value, int index); void actual_bind(Statement& statement, const std::int64_t& value, int index); -void actual_bind(Statement& statement, const std::optional& value, int index); -template +template ::value>* = 0> void actual_bind(Statement& statement, const T& value, int index) { actual_bind(statement, static_cast(value), index); } +void actual_bind(Statement& statement, const std::optional& value, int index); #ifdef DEBUG_SQL_QUERIES #include @@ -57,27 +57,38 @@ struct Query #endif }; -void actual_add_param(Query& query, const std::string& val); -void actual_add_param(Query& query, const std::optional& val); +template +void add_param(Query& query, const ColumnType& column) +{ + std::cout << "add_param" << std::endl; + actual_add_param(query, column.value); +} + template void actual_add_param(Query& query, const T& val) { query.params.push_back(std::to_string(val)); } +void actual_add_param(Query& query, const std::string& val); + +template +typename std::enable_if::value, Query&>::type +operator<<(Query& query, const T&) +{ + query.body += T::name; + return query; +} +void actual_add_param(Query& query, const std::optional& val); + Query& operator<<(Query& query, const char* str); Query& operator<<(Query& query, const std::string& str); -template -Query& operator<<(Query& query, const T& i) +template +typename std::enable_if::value, Query&>::type +operator<<(Query& query, const Integer& i) { - if constexpr(std::is_integral::value) - { - query.body += "$" + std::to_string(query.current_param++); - actual_add_param(query, i); - } - else - { - query.body += T::name; - } + query.body += "$" + std::to_string(query.current_param++); + actual_add_param(query, i); return query; } + -- cgit v1.2.3