فهرست منبع

bugfix: don't accidentally catch filesystem, etc

Sam Jaffe 3 سال پیش
والد
کامیت
32fdca165a
1فایلهای تغییر یافته به همراه4 افزوده شده و 1 حذف شده
  1. 4 1
      include/string_utils/traits.h

+ 4 - 1
include/string_utils/traits.h

@@ -25,9 +25,12 @@ template <typename, typename = void> struct is_associative : std::false_type {};
 template <typename T>
 struct is_associative<T, std::void_t<typename T::mapped_type>> : std::true_type {};
 
+template <typename C>
+using insert_t = decltype(std::declval<C>().insert(std::declval<typename C::iterator>(),
+                                                   std::declval<typename C::value_type>()));
 template <typename, typename = void> struct is_container : std::false_type {};
 template <typename T>
-struct is_container<T, std::void_t<typename T::value_type>> : std::true_type {};
+struct is_container<T, std::void_t<typename T::value_type, insert_t<T>>> : std::true_type {};
 
 template <typename T> struct decay { using type = std::decay_t<T>; };
 template <template <typename...> class C, typename... Ts>