[libcxx] Fix usage of _C2, which is a "nasty macro" in some environments
authorLouis Dionne <ldionne@apple.com>
Thu, 1 Nov 2018 14:41:37 +0000 (14:41 +0000)
committerLouis Dionne <ldionne@apple.com>
Thu, 1 Nov 2018 14:41:37 +0000 (14:41 +0000)
The problem was pointed out in https://reviews.llvm.org/D48896#inline-475775.

llvm-svn: 345834

libcxx/include/map
libcxx/include/set
libcxx/test/support/nasty_macros.hpp

index 472ac31..d3c59f3 100644 (file)
@@ -1323,33 +1323,33 @@ public:
     {
         return __tree_.template __node_handle_extract<node_type>(__it.__i_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(map<key_type, mapped_type, _C2, allocator_type>& __source)
+    void merge(map<key_type, mapped_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(map<key_type, mapped_type, _C2, allocator_type>&& __source)
+    void merge(map<key_type, mapped_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multimap<key_type, mapped_type, _C2, allocator_type>& __source)
+    void merge(multimap<key_type, mapped_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multimap<key_type, mapped_type, _C2, allocator_type>&& __source)
+    void merge(multimap<key_type, mapped_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
@@ -1942,33 +1942,33 @@ public:
         return __tree_.template __node_handle_extract<node_type>(
             __it.__i_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multimap<key_type, mapped_type, _C2, allocator_type>& __source)
+    void merge(multimap<key_type, mapped_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         return __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multimap<key_type, mapped_type, _C2, allocator_type>&& __source)
+    void merge(multimap<key_type, mapped_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         return __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(map<key_type, mapped_type, _C2, allocator_type>& __source)
+    void merge(map<key_type, mapped_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         return __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(map<key_type, mapped_type, _C2, allocator_type>&& __source)
+    void merge(map<key_type, mapped_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
index 80cc7b0..ccf785a 100644 (file)
@@ -513,7 +513,7 @@ public:
 
 #if _LIBCPP_STD_VER > 11
         template <class _InputIterator>
-        _LIBCPP_INLINE_VISIBILITY 
+        _LIBCPP_INLINE_VISIBILITY
         set(_InputIterator __f, _InputIterator __l, const allocator_type& __a)
             : set(__f, __l, key_compare(), __a) {}
 #endif
@@ -569,7 +569,7 @@ public:
         }
 
 #if _LIBCPP_STD_VER > 11
-    _LIBCPP_INLINE_VISIBILITY 
+    _LIBCPP_INLINE_VISIBILITY
     set(initializer_list<value_type> __il, const allocator_type& __a)
         : set(__il, key_compare(), __a) {}
 #endif
@@ -707,33 +707,33 @@ public:
     {
         return __tree_.template __node_handle_extract<node_type>(__it);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(set<key_type, _C2, allocator_type>& __source)
+    void merge(set<key_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(set<key_type, _C2, allocator_type>&& __source)
+    void merge(set<key_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multiset<key_type, _C2, allocator_type>& __source)
+    void merge(multiset<key_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_unique(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multiset<key_type, _C2, allocator_type>&& __source)
+    void merge(multiset<key_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
@@ -984,7 +984,7 @@ public:
 
 #if _LIBCPP_STD_VER > 11
         template <class _InputIterator>
-        _LIBCPP_INLINE_VISIBILITY 
+        _LIBCPP_INLINE_VISIBILITY
         multiset(_InputIterator __f, _InputIterator __l, const allocator_type& __a)
             : multiset(__f, __l, key_compare(), __a) {}
 #endif
@@ -1048,7 +1048,7 @@ public:
         }
 
 #if _LIBCPP_STD_VER > 11
-    _LIBCPP_INLINE_VISIBILITY 
+    _LIBCPP_INLINE_VISIBILITY
     multiset(initializer_list<value_type> __il, const allocator_type& __a)
         : multiset(__il, key_compare(), __a) {}
 #endif
@@ -1185,33 +1185,33 @@ public:
     {
         return __tree_.template __node_handle_extract<node_type>(__it);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multiset<key_type, _C2, allocator_type>& __source)
+    void merge(multiset<key_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(multiset<key_type, _C2, allocator_type>&& __source)
+    void merge(multiset<key_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(set<key_type, _C2, allocator_type>& __source)
+    void merge(set<key_type, _Compare2, allocator_type>& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
         __tree_.__node_handle_merge_multi(__source.__tree_);
     }
-    template <class _C2>
+    template <class _Compare2>
     _LIBCPP_INLINE_VISIBILITY
-    void merge(set<key_type, _C2, allocator_type>&& __source)
+    void merge(set<key_type, _Compare2, allocator_type>&& __source)
     {
         _LIBCPP_ASSERT(__source.get_allocator() == get_allocator(),
                        "merging container with incompatible allocator");
index 97a17bb..3c2a5e2 100644 (file)
@@ -49,6 +49,9 @@
 #define _CRPC NASTY_MACRO
 #define _CPC  NASTY_MACRO
 
+// yvals.h on MINGW defines this macro
+#define _C2 NASTY_MACRO
+
 // Test that libc++ doesn't use names reserved by WIN32 API Macros.
 // NOTE: Obviously we can only define these on non-windows platforms.
 #ifndef _WIN32