From cf56b60fd340dc62f90b5b8d3c86d68da347abee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?louiz=E2=80=99?= Date: Sat, 8 Jul 2017 12:36:08 +0200 Subject: =?UTF-8?q?Remove=20all=20the=20empty=20=E2=80=9Coptions=E2=80=9D?= =?UTF-8?q?=20members=20in=20Column=20classes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit By using SFINAE to use that member only when it exists. --- src/database/table.hpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/database/table.hpp') diff --git a/src/database/table.hpp b/src/database/table.hpp index 411ac6a..f2f70bb 100644 --- a/src/database/table.hpp +++ b/src/database/table.hpp @@ -28,6 +28,17 @@ void add_column_to_table(sqlite3* db, const std::string& table_name) } } + +template +void append_option(std::string& s) +{ + s += " "s + ColumnType::options; +} + +template +void append_option(...) +{ } + template class Table { @@ -110,14 +121,13 @@ class Table str += ColumnType::name; str += " "; str += TypeToSQLType::type; - str += " "s + ColumnType::options; + append_option(str); if (N != sizeof...(T) - 1) str += ","; str += "\n"; add_column_create(str); } - template typename std::enable_if::type add_column_create(std::string&) -- cgit v1.2.3