diff options
-rw-r--r-- | src/client/rspamc.cxx | 2 | ||||
-rw-r--r-- | src/libserver/html/html_tag_defs.hxx | 2 | ||||
-rw-r--r-- | src/libutil/cxx/util.hxx | 5 |
3 files changed, 5 insertions, 4 deletions
diff --git a/src/client/rspamc.cxx b/src/client/rspamc.cxx index 2a2332bca..b7341be4f 100644 --- a/src/client/rspamc.cxx +++ b/src/client/rspamc.cxx @@ -214,7 +214,7 @@ struct rspamc_command { void (*command_output_func)(FILE *, ucl_object_t *obj); }; -static const constexpr auto rspamc_commands = rspamd::array_of<rspamc_command>( +static const constexpr auto rspamc_commands = rspamd::array_of( rspamc_command{ .cmd = RSPAMC_COMMAND_SYMBOLS, .name = "symbols", diff --git a/src/libserver/html/html_tag_defs.hxx b/src/libserver/html/html_tag_defs.hxx index 7e6cc9bf6..812ec2021 100644 --- a/src/libserver/html/html_tag_defs.hxx +++ b/src/libserver/html/html_tag_defs.hxx @@ -33,7 +33,7 @@ struct html_tag_def { #define TAG_DEF(id, name, flags) html_tag_def{(name), (id), (flags)} -static const auto html_tag_defs_array = rspamd::array_of<html_tag_def>( +static const auto html_tag_defs_array = rspamd::array_of( /* W3C defined elements */ TAG_DEF(Tag_A, "a", FL_HREF), TAG_DEF(Tag_ABBR, "abbr", (CM_INLINE)), diff --git a/src/libutil/cxx/util.hxx b/src/libutil/cxx/util.hxx index e45f16008..5b2020bb6 100644 --- a/src/libutil/cxx/util.hxx +++ b/src/libutil/cxx/util.hxx @@ -72,9 +72,10 @@ struct smart_ptr_hash { /* * Creates std::array from a standard C style array with automatic size calculation */ -template <typename V, typename... T> -constexpr auto array_of(T&&... t) -> std::array<V, sizeof...(T)> +template <typename... Ts> +constexpr auto array_of(Ts&&... t) -> std::array<typename std::decay_t<typename std::common_type_t<Ts...>>, sizeof...(Ts)> { + using T = typename std::decay_t<typename std::common_type_t<Ts...>>; return {{ std::forward<T>(t)... }}; } |