summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libcxx/include/deque2
-rw-r--r--libcxx/include/map4
-rw-r--r--libcxx/include/set8
-rw-r--r--libcxx/test/containers/associative/map/map.cons/default.pass.cpp5
-rw-r--r--libcxx/test/containers/associative/multimap/multimap.cons/default.pass.cpp5
-rw-r--r--libcxx/test/containers/associative/multiset/multiset.cons/default.pass.cpp5
-rw-r--r--libcxx/test/containers/associative/set/set.cons/default.pass.cpp5
-rw-r--r--libcxx/test/containers/sequences/deque/deque.cons/default.pass.cpp4
-rw-r--r--libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp6
-rw-r--r--libcxx/test/containers/sequences/list/list.cons/default.pass.cpp5
-rw-r--r--libcxx/test/containers/sequences/vector.bool/construct_default.pass.cpp6
-rw-r--r--libcxx/test/containers/sequences/vector/vector.cons/construct_default.pass.cpp6
-rw-r--r--libcxx/test/containers/unord/unord.map/unord.map.cnstr/assign_copy.pass.cpp2
-rw-r--r--libcxx/test/containers/unord/unord.map/unord.map.cnstr/default.pass.cpp9
-rw-r--r--libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/default.pass.cpp9
-rw-r--r--libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/default.pass.cpp9
-rw-r--r--libcxx/test/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp9
17 files changed, 91 insertions, 8 deletions
diff --git a/libcxx/include/deque b/libcxx/include/deque
index f099000b137..9b256b74d4f 100644
--- a/libcxx/include/deque
+++ b/libcxx/include/deque
@@ -1208,7 +1208,7 @@ public:
deque()
_NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
{}
- _LIBCPP_INLINE_VISIBILITY deque(const allocator_type& __a) : __base(__a) {}
+ _LIBCPP_INLINE_VISIBILITY explicit deque(const allocator_type& __a) : __base(__a) {}
explicit deque(size_type __n);
#if _LIBCPP_STD_VER > 11
explicit deque(size_type __n, const _Allocator& __a);
diff --git a/libcxx/include/map b/libcxx/include/map
index 9779b70e212..16127a5d76b 100644
--- a/libcxx/include/map
+++ b/libcxx/include/map
@@ -835,7 +835,7 @@ public:
typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;
_LIBCPP_INLINE_VISIBILITY
- explicit map(const key_compare& __comp = key_compare())
+ map(const key_compare& __comp = key_compare())
_NOEXCEPT_(
is_nothrow_default_constructible<allocator_type>::value &&
is_nothrow_default_constructible<key_compare>::value &&
@@ -1568,7 +1568,7 @@ public:
typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;
_LIBCPP_INLINE_VISIBILITY
- explicit multimap(const key_compare& __comp = key_compare())
+ multimap(const key_compare& __comp = key_compare())
_NOEXCEPT_(
is_nothrow_default_constructible<allocator_type>::value &&
is_nothrow_default_constructible<key_compare>::value &&
diff --git a/libcxx/include/set b/libcxx/include/set
index a537c5fe345..f093b1896a3 100644
--- a/libcxx/include/set
+++ b/libcxx/include/set
@@ -425,14 +425,14 @@ public:
typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;
_LIBCPP_INLINE_VISIBILITY
- explicit set(const value_compare& __comp = value_compare())
+ set(const value_compare& __comp = value_compare())
_NOEXCEPT_(
is_nothrow_default_constructible<allocator_type>::value &&
is_nothrow_default_constructible<key_compare>::value &&
is_nothrow_copy_constructible<key_compare>::value)
: __tree_(__comp) {}
_LIBCPP_INLINE_VISIBILITY
- set(const value_compare& __comp, const allocator_type& __a)
+ explicit set(const value_compare& __comp, const allocator_type& __a)
: __tree_(__comp, __a) {}
template <class _InputIterator>
_LIBCPP_INLINE_VISIBILITY
@@ -822,14 +822,14 @@ public:
// construct/copy/destroy:
_LIBCPP_INLINE_VISIBILITY
- explicit multiset(const value_compare& __comp = value_compare())
+ multiset(const value_compare& __comp = value_compare())
_NOEXCEPT_(
is_nothrow_default_constructible<allocator_type>::value &&
is_nothrow_default_constructible<key_compare>::value &&
is_nothrow_copy_constructible<key_compare>::value)
: __tree_(__comp) {}
_LIBCPP_INLINE_VISIBILITY
- multiset(const value_compare& __comp, const allocator_type& __a)
+ explicit multiset(const value_compare& __comp, const allocator_type& __a)
: __tree_(__comp, __a) {}
template <class _InputIterator>
_LIBCPP_INLINE_VISIBILITY
diff --git a/libcxx/test/containers/associative/map/map.cons/default.pass.cpp b/libcxx/test/containers/associative/map/map.cons/default.pass.cpp
index 2c6908e7b38..1832a32fffb 100644
--- a/libcxx/test/containers/associative/map/map.cons/default.pass.cpp
+++ b/libcxx/test/containers/associative/map/map.cons/default.pass.cpp
@@ -31,5 +31,10 @@ int main()
assert(m.empty());
assert(m.begin() == m.end());
}
+ {
+ std::map<int, double> m = {};
+ assert(m.empty());
+ assert(m.begin() == m.end());
+ }
#endif
}
diff --git a/libcxx/test/containers/associative/multimap/multimap.cons/default.pass.cpp b/libcxx/test/containers/associative/multimap/multimap.cons/default.pass.cpp
index 2651d90a6fd..1c3ab8ce6c4 100644
--- a/libcxx/test/containers/associative/multimap/multimap.cons/default.pass.cpp
+++ b/libcxx/test/containers/associative/multimap/multimap.cons/default.pass.cpp
@@ -31,5 +31,10 @@ int main()
assert(m.empty());
assert(m.begin() == m.end());
}
+ {
+ std::multimap<int, double> m = {};
+ assert(m.empty());
+ assert(m.begin() == m.end());
+ }
#endif
}
diff --git a/libcxx/test/containers/associative/multiset/multiset.cons/default.pass.cpp b/libcxx/test/containers/associative/multiset/multiset.cons/default.pass.cpp
index b6176c92d2a..5bb0312f012 100644
--- a/libcxx/test/containers/associative/multiset/multiset.cons/default.pass.cpp
+++ b/libcxx/test/containers/associative/multiset/multiset.cons/default.pass.cpp
@@ -31,5 +31,10 @@ int main()
assert(m.empty());
assert(m.begin() == m.end());
}
+ {
+ std::multiset<int> m = {};
+ assert(m.empty());
+ assert(m.begin() == m.end());
+ }
#endif
}
diff --git a/libcxx/test/containers/associative/set/set.cons/default.pass.cpp b/libcxx/test/containers/associative/set/set.cons/default.pass.cpp
index d047b12a9d1..746a2d17307 100644
--- a/libcxx/test/containers/associative/set/set.cons/default.pass.cpp
+++ b/libcxx/test/containers/associative/set/set.cons/default.pass.cpp
@@ -31,5 +31,10 @@ int main()
assert(m.empty());
assert(m.begin() == m.end());
}
+ {
+ std::set<int> m = {};
+ assert(m.empty());
+ assert(m.begin() == m.end());
+ }
#endif
}
diff --git a/libcxx/test/containers/sequences/deque/deque.cons/default.pass.cpp b/libcxx/test/containers/sequences/deque/deque.cons/default.pass.cpp
index f8754f1df15..b725dade70b 100644
--- a/libcxx/test/containers/sequences/deque/deque.cons/default.pass.cpp
+++ b/libcxx/test/containers/sequences/deque/deque.cons/default.pass.cpp
@@ -24,6 +24,10 @@ test()
{
std::deque<T, Allocator> d;
assert(d.size() == 0);
+#if __cplusplus >= 201103L
+ std::deque<T, Allocator> d1 = {};
+ assert(d1.size() == 0);
+#endif
}
int main()
diff --git a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp
index dcc438c3ed2..38e95fad839 100644
--- a/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp
+++ b/libcxx/test/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp
@@ -31,5 +31,11 @@ int main()
C c;
assert(c.empty());
}
+ {
+ typedef int T;
+ typedef std::forward_list<T> C;
+ C c = {};
+ assert(c.empty());
+ }
#endif
}
diff --git a/libcxx/test/containers/sequences/list/list.cons/default.pass.cpp b/libcxx/test/containers/sequences/list/list.cons/default.pass.cpp
index 6962d28a596..c05bd74ca79 100644
--- a/libcxx/test/containers/sequences/list/list.cons/default.pass.cpp
+++ b/libcxx/test/containers/sequences/list/list.cons/default.pass.cpp
@@ -49,5 +49,10 @@ int main()
assert(l.size() == 0);
assert(std::distance(l.begin(), l.end()) == 0);
}
+ {
+ std::list<int> l = {};
+ assert(l.size() == 0);
+ assert(std::distance(l.begin(), l.end()) == 0);
+ }
#endif
}
diff --git a/libcxx/test/containers/sequences/vector.bool/construct_default.pass.cpp b/libcxx/test/containers/sequences/vector.bool/construct_default.pass.cpp
index 51ecbb1d276..d3d6670bbf2 100644
--- a/libcxx/test/containers/sequences/vector.bool/construct_default.pass.cpp
+++ b/libcxx/test/containers/sequences/vector.bool/construct_default.pass.cpp
@@ -26,6 +26,12 @@ test0()
assert(c.__invariants());
assert(c.empty());
assert(c.get_allocator() == typename C::allocator_type());
+#if __cplusplus >= 201103L
+ C c1 = {};
+ assert(c1.__invariants());
+ assert(c1.empty());
+ assert(c1.get_allocator() == typename C::allocator_type());
+#endif
}
template <class C>
diff --git a/libcxx/test/containers/sequences/vector/vector.cons/construct_default.pass.cpp b/libcxx/test/containers/sequences/vector/vector.cons/construct_default.pass.cpp
index f8b66f4b6da..48c8cf810b5 100644
--- a/libcxx/test/containers/sequences/vector/vector.cons/construct_default.pass.cpp
+++ b/libcxx/test/containers/sequences/vector/vector.cons/construct_default.pass.cpp
@@ -27,6 +27,12 @@ test0()
assert(c.__invariants());
assert(c.empty());
assert(c.get_allocator() == typename C::allocator_type());
+#if __cplusplus >= 201103L
+ C c1 = {};
+ assert(c1.__invariants());
+ assert(c1.empty());
+ assert(c1.get_allocator() == typename C::allocator_type());
+#endif
}
template <class C>
diff --git a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/assign_copy.pass.cpp b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/assign_copy.pass.cpp
index 622ce5061c1..fa0105604f1 100644
--- a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/assign_copy.pass.cpp
+++ b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/assign_copy.pass.cpp
@@ -86,7 +86,7 @@ int main()
};
C c(a, a + sizeof(a)/sizeof(a[0]));
C *p = &c;
- c = *p;
+ c = *p;
assert(c.size() == 4);
assert(std::is_permutation(c.begin(), c.end(), a));
}
diff --git a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/default.pass.cpp b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/default.pass.cpp
index 42f1faaeade..a0825db1ecd 100644
--- a/libcxx/test/containers/unord/unord.map/unord.map.cnstr/default.pass.cpp
+++ b/libcxx/test/containers/unord/unord.map/unord.map.cnstr/default.pass.cpp
@@ -65,5 +65,14 @@ int main()
assert(c.load_factor() == 0);
assert(c.max_load_factor() == 1);
}
+ {
+ std::unordered_map<int, int> c = {};
+ assert(c.bucket_count() == 0);
+ assert(c.size() == 0);
+ assert(c.empty());
+ assert(std::distance(c.begin(), c.end()) == 0);
+ assert(c.load_factor() == 0);
+ assert(c.max_load_factor() == 1);
+ }
#endif
}
diff --git a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/default.pass.cpp b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/default.pass.cpp
index b7a01a458d5..1884065ce0c 100644
--- a/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/default.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multimap/unord.multimap.cnstr/default.pass.cpp
@@ -65,5 +65,14 @@ int main()
assert(c.load_factor() == 0);
assert(c.max_load_factor() == 1);
}
+ {
+ std::unordered_multimap<int, int> c = {};
+ assert(c.bucket_count() == 0);
+ assert(c.size() == 0);
+ assert(c.empty());
+ assert(std::distance(c.begin(), c.end()) == 0);
+ assert(c.load_factor() == 0);
+ assert(c.max_load_factor() == 1);
+ }
#endif
}
diff --git a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/default.pass.cpp b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/default.pass.cpp
index 6726bc127fb..737ae2dae79 100644
--- a/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/default.pass.cpp
+++ b/libcxx/test/containers/unord/unord.multiset/unord.multiset.cnstr/default.pass.cpp
@@ -61,5 +61,14 @@ int main()
assert(c.load_factor() == 0);
assert(c.max_load_factor() == 1);
}
+ {
+ std::unordered_multiset<int> c = {};
+ assert(c.bucket_count() == 0);
+ assert(c.size() == 0);
+ assert(c.empty());
+ assert(std::distance(c.begin(), c.end()) == 0);
+ assert(c.load_factor() == 0);
+ assert(c.max_load_factor() == 1);
+ }
#endif
}
diff --git a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp
index ee901fb1c1f..6efa9ed8d1d 100644
--- a/libcxx/test/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp
+++ b/libcxx/test/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp
@@ -61,5 +61,14 @@ int main()
assert(c.load_factor() == 0);
assert(c.max_load_factor() == 1);
}
+ {
+ std::unordered_set<int> c = {};
+ assert(c.bucket_count() == 0);
+ assert(c.size() == 0);
+ assert(c.empty());
+ assert(std::distance(c.begin(), c.end()) == 0);
+ assert(c.load_factor() == 0);
+ assert(c.max_load_factor() == 1);
+ }
#endif
}
OpenPOWER on IntegriCloud