diff --git a/beast/utility/ci_char_traits.h b/beast/utility/ci_char_traits.h index b7243052f..406302369 100644 --- a/beast/utility/ci_char_traits.h +++ b/beast/utility/ci_char_traits.h @@ -21,6 +21,7 @@ #define BEAST_UTILITY_CI_CHAR_TRAITS_H_INCLUDED #include // +#include // #include #include #include @@ -48,13 +49,13 @@ struct ci_less }; /** Returns `true` if strings are case-insensitive equal. */ -template -bool -ci_equal(String const& lhs, String const& rhs) +template +std::enable_if_t::value && + std::is_same::value, bool> +ci_equal(Lhs const& lhs, Rhs const& rhs) { - typedef typename String::value_type char_type; return std::equal (lhs.begin(), lhs.end(), rhs.begin(), rhs.end(), - [] (char_type lhs, char_type rhs) + [] (char lhs, char rhs) { return std::tolower(lhs) == std::tolower(rhs); }