From 7b9f7e6ff3f6dd62a3c9907fb51ce1e3a04d4746 Mon Sep 17 00:00:00 2001 From: Vasily Date: Sun, 26 Jan 2020 14:36:53 +0100 Subject: [PATCH] Explicitly disallow floats from object settings API This is to incentivize the transfer from `float` to `double` throughout the codebase. --- src/settings/internal/settings_object_data.h | 4 ++++ src/settings/settings_object.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/settings/internal/settings_object_data.h b/src/settings/internal/settings_object_data.h index 0369373..3cf663a 100644 --- a/src/settings/internal/settings_object_data.h +++ b/src/settings/internal/settings_object_data.h @@ -59,9 +59,13 @@ private: const auto isBool = is_same::value; const auto isInt = is_same::value; const auto isDouble = is_same::value; + const auto isFloat = is_same::value; const auto isString = is_same::value || is_same::value; + static_assert( !isFloat, + "'float' is not supported. Use 'double' instead." ); + static_assert( isBool || isInt || isDouble || isString, "Type is not supported for the settings object." ); diff --git a/src/settings/settings_object.cpp b/src/settings/settings_object.cpp index 4231b92..5986eda 100644 --- a/src/settings/settings_object.cpp +++ b/src/settings/settings_object.cpp @@ -65,8 +65,12 @@ std::list loadListFromDisk( const std::string structName, const auto isBool = is_same::value; const auto isInt = is_same::value; const auto isDouble = is_same::value; + const auto isFloat = is_same::value; const auto isString = is_same::value; + static_assert( !isFloat, + "'float' is not supported. Use 'double' instead." ); + static_assert( isBool || isInt || isDouble || isString, "Type is not supported for the settings object." );