diff options
author | louiz’ <louiz@louiz.org> | 2018-03-17 17:33:29 +0100 |
---|---|---|
committer | louiz’ <louiz@louiz.org> | 2018-03-17 17:34:00 +0100 |
commit | 8c483aa805eb3da25be685ee875555662cab1038 (patch) | |
tree | 6d2f5f9d60f938b05ddf47bb6b56e51bcd42472f /src/database/index.hpp | |
parent | f8a1048ffeec6322c1e64a0eda7636a977669898 (diff) | |
download | biboumi-c++17.tar.gz biboumi-c++17.tar.bz2 biboumi-c++17.tar.xz biboumi-c++17.zip |
Re-apply "Use if constexpr to make things a lot more readable"c++17
This reverts commit d0e3c71b91f1a1c1780158789fd42b8ac7209495.
Diffstat (limited to 'src/database/index.hpp')
-rw-r--r-- | src/database/index.hpp | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/database/index.hpp b/src/database/index.hpp index 30766ab..094a36a 100644 --- a/src/database/index.hpp +++ b/src/database/index.hpp @@ -8,19 +8,16 @@ namespace { template <std::size_t N=0, typename... T> -typename std::enable_if<N == sizeof...(T), void>::type -add_column_name(std::string&) -{ } - -template <std::size_t N=0, typename... T> -typename std::enable_if<N < sizeof...(T), void>::type -add_column_name(std::string& out) +void add_column_name(std::string& out) { - using ColumnType = typename std::remove_reference<decltype(std::get<N>(std::declval<std::tuple<T...>>()))>::type; - out += ColumnType::name; - if (N != sizeof...(T) - 1) - out += ","; - add_column_name<N+1, T...>(out); + if constexpr(N < sizeof...(T)) + { + using ColumnType = typename std::remove_reference<decltype(std::get<N>(std::declval<std::tuple<T...>>()))>::type; + out += ColumnType::name; + if (N != sizeof...(T) - 1) + out += ","; + add_column_name<N + 1, T...>(out); + } } } |