summaryrefslogtreecommitdiff
path: root/src/database/table.hpp
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2018-03-17 17:28:41 +0100
committerlouiz’ <louiz@louiz.org>2018-03-17 17:28:41 +0100
commitd0e3c71b91f1a1c1780158789fd42b8ac7209495 (patch)
treee5e4f8055e73437318a36bddebd1c6d426fdce8e /src/database/table.hpp
parentd62ca9f87906be6f046fe9d07afb8bfb69c166e3 (diff)
downloadbiboumi-d0e3c71b91f1a1c1780158789fd42b8ac7209495.tar.gz
biboumi-d0e3c71b91f1a1c1780158789fd42b8ac7209495.tar.bz2
biboumi-d0e3c71b91f1a1c1780158789fd42b8ac7209495.tar.xz
biboumi-d0e3c71b91f1a1c1780158789fd42b8ac7209495.zip
Revert "Use if constexpr to make things a lot more readable"
This reverts commit d62ca9f87906be6f046fe9d07afb8bfb69c166e3.
Diffstat (limited to 'src/database/table.hpp')
-rw-r--r--src/database/table.hpp44
1 files changed, 24 insertions, 20 deletions
diff --git a/src/database/table.hpp b/src/database/table.hpp
index eb68418..680e7cc 100644
--- a/src/database/table.hpp
+++ b/src/database/table.hpp
@@ -93,32 +93,36 @@ class Table
private:
template <std::size_t N=0>
- void add_column_if_not_exists(DatabaseEngine& db, const std::set<std::string>& existing_columns)
+ typename std::enable_if<N < sizeof...(T), void>::type
+ add_column_if_not_exists(DatabaseEngine& db, const std::set<std::string>& existing_columns)
{
- if constexpr(N < sizeof...(T))
- {
- using ColumnType = typename std::remove_reference<decltype(std::get<N>(std::declval<ColumnTypes>()))>::type;
- if (existing_columns.count(ColumnType::name) == 0)
- add_column_to_table<ColumnType>(db, this->name);
- add_column_if_not_exists<N + 1>(db, existing_columns);
- }
+ using ColumnType = typename std::remove_reference<decltype(std::get<N>(std::declval<ColumnTypes>()))>::type;
+ if (existing_columns.count(ColumnType::name) == 0)
+ add_column_to_table<ColumnType>(db, this->name);
+ add_column_if_not_exists<N+1>(db, existing_columns);
}
+ template <std::size_t N=0>
+ typename std::enable_if<N == sizeof...(T), void>::type
+ add_column_if_not_exists(DatabaseEngine&, const std::set<std::string>&)
+ {}
template <std::size_t N=0>
- void add_column_create(DatabaseEngine& db, std::string& str)
+ typename std::enable_if<N < sizeof...(T), void>::type
+ add_column_create(DatabaseEngine& db, std::string& str)
{
- if constexpr(N < sizeof...(T))
- {
- using ColumnType = typename std::remove_reference<decltype(std::get<N>(std::declval<ColumnTypes>()))>::type;
- str += ColumnType::name;
- str += " ";
- str += ToSQLType<ColumnType>(db);
- if (N != sizeof...(T) - 1)
- str += ",";
-
- add_column_create<N + 1>(db, str);
- }
+ using ColumnType = typename std::remove_reference<decltype(std::get<N>(std::declval<ColumnTypes>()))>::type;
+ str += ColumnType::name;
+ str += " ";
+ str += ToSQLType<ColumnType>(db);
+ if (N != sizeof...(T) - 1)
+ str += ",";
+
+ add_column_create<N+1>(db, str);
}
+ template <std::size_t N=0>
+ typename std::enable_if<N == sizeof...(T), void>::type
+ add_column_create(DatabaseEngine&, std::string&)
+ { }
const std::string name;
};