https://bugs.gentoo.org/840647 https://github.com/mawww/kakoune/issues/4544 https://github.com/mawww/kakoune/pull/4549 https://github.com/mawww/kakoune/commit/d1ea2ffa600fd2a7b14e415b68ceedba3325c5db commit d1ea2ffa600fd2a7b14e415b68ceedba3325c5db Author: Tim Allen Date: Sat Feb 12 21:35:33 2022 +1100 Make Color::validate_alpha() a constexpr function. We call it from a constexpr constructor, so it needs to be constexpr itself. Fixes #4544. diff --git a/src/color.cc b/src/color.cc index b355b9cf..dfe2e955 100644 --- a/src/color.cc +++ b/src/color.cc @@ -34,13 +34,6 @@ bool is_color_name(StringView color) return contains(color_names, color); } -void Color::validate_alpha() -{ - static_assert(RGB == 17); - if (a < RGB) - throw runtime_error("Colors alpha must be > 16"); -} - Color str_to_color(StringView color) { auto it = find_if(color_names, [&](const char* c){ return color == c; }); diff --git a/src/color.hh b/src/color.hh index 943678ed..85babd98 100644 --- a/src/color.hh +++ b/src/color.hh @@ -1,6 +1,7 @@ #ifndef color_hh_INCLUDED #define color_hh_INCLUDED +#include "exception.hh" #include "hash.hh" #include "meta.hh" #include "assert.hh" @@ -55,7 +56,11 @@ struct Color } private: - void validate_alpha(); + constexpr void validate_alpha() { + static_assert(RGB == 17); + if (a < RGB) + throw runtime_error("Colors alpha must be > 16"); + } }; constexpr bool operator==(Color lhs, Color rhs)