فهرست منبع

cleanup: don't re-declare std namespace

Sam Jaffe 3 سال پیش
والد
کامیت
86ae4672ae
1فایلهای تغییر یافته به همراه15 افزوده شده و 21 حذف شده
  1. 15 21
      include/iterator/facade.h

+ 15 - 21
include/iterator/facade.h

@@ -236,28 +236,22 @@ namespace iterator {
   };
 }
 
-namespace std {
-  // In C++20, a concept/requires could be used to eschew the need for the below
-  // macros.
-  template <typename I> struct iterator_traits<::iterator::facade<I>> {
-    using reference = decltype(*std::declval<I>());
-    using value_type = std::remove_cv_t<std::remove_reference_t<reference>>;
-    using pointer = decltype(std::declval<I>().operator->());
-    using difference_type = ::iterator::detail::distance_to_t<I>;
-    using iterator_category = ::iterator::detail::iterator_category_t<I>;
-  };
-}
+// In C++20, a concept/requires could be used to eschew the need for the below
+// macros.
+template <typename I> struct std::iterator_traits<::iterator::facade<I>> {
+  using reference = decltype(*std::declval<I>());
+  using value_type = std::remove_cv_t<std::remove_reference_t<reference>>;
+  using pointer = decltype(std::declval<I>().operator->());
+  using difference_type = ::iterator::detail::distance_to_t<I>;
+  using iterator_category = ::iterator::detail::iterator_category_t<I>;
+};
 
 #define MAKE_ITERATOR_FACADE_TYPEDEFS(type)                                    \
-  namespace std {                                                              \
-    template <>                                                                \
-    struct iterator_traits<type>                                               \
-        : std::iterator_traits<::iterator::facade<type>> {};                   \
-  }
+  template <>                                                                  \
+  struct std::iterator_traits<type>                                            \
+      : std::iterator_traits<::iterator::facade<type>> {};                     \
 
 #define MAKE_ITERATOR_FACADE_TYPEDEFS_T(type)                                  \
-  namespace std {                                                              \
-    template <typename... T>                                                   \
-    struct iterator_traits<type<T...>>                                         \
-        : std::iterator_traits<::iterator::facade<type<T...>>> {};             \
-  }
+  template <typename... T>                                                     \
+  struct std::iterator_traits<type<T...>>                                      \
+      : std::iterator_traits<::iterator::facade<type<T...>>> {};               \