From 1408f1824d6a23643e178ee6e46478fb550a0963 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Sat, 13 Jul 2024 11:11:47 -0700 Subject: [PATCH] Simplify iterator detection --- include/fmt/base.h | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/include/fmt/base.h b/include/fmt/base.h index d4a3474de552..545724f23ccb 100644 --- a/include/fmt/base.h +++ b/include/fmt/base.h @@ -474,23 +474,22 @@ FMT_CONSTEXPR auto compare(const Char* s1, const Char* s2, std::size_t n) return 0; } -namespace detect { - +namespace adl { using namespace std; +template +auto invoke_back_inserter() + -> decltype(back_inserter(std::declval())); +} // namespace adl + template struct is_back_insert_iterator : std::false_type {}; template struct is_back_insert_iterator< - It, - bool_constant())), - It>::value>> : std::true_type {}; - -} // namespace detect - -using detect::is_back_insert_iterator; + It, bool_constant()), + It>::value>> : std::true_type {}; // Extracts a reference to the container from *insert_iterator. template @@ -1185,10 +1184,8 @@ template class basic_appender { using appender = basic_appender; namespace detail { -namespace detect { template struct is_back_insert_iterator> : std::true_type {}; -} template struct locking : std::true_type {};