[libcxx] r202994 - Implement LWG 2193. Default constructors for standard library containers are explicit. Note that libc++ already did this for string/deque/forward_list/list/vector and the unordered containers; implement it for set/multiset/map/multimap. Add tests for all the containers. Two drive-by fixes as well: add a missing explicit in <deque>, and remove a tab that snuck into a container test. This issue is also LLVM bug 15724, and resolves it.
Sebastian Redl
sebastian.redl at getdesigned.at
Thu Mar 6 01:38:39 PST 2014
On 2014-03-05 20:06, Marshall Clow wrote:
> Author: marshall
> Date: Wed Mar 5 13:06:20 2014
> New Revision: 202994
>
> URL: http://llvm.org/viewvc/llvm-project?rev=202994&view=rev
> Log:
> Implement LWG 2193. Default constructors for standard library containers are explicit. Note that libc++ already did this for string/deque/forward_list/list/vector and the unordered containers; implement it for set/multiset/map/multimap. Add tests for all the containers. Two drive-by fixes as well: add a missing explicit in <deque>, and remove a tab that snuck into a container test. This issue is also LLVM bug 15724, and resolves it.
>
> Modified: libcxx/trunk/include/map
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/map?rev=202994&r1=202993&r2=202994&view=diff
> ==============================================================================
> --- libcxx/trunk/include/map (original)
> +++ libcxx/trunk/include/map Wed Mar 5 13:06:20 2014
> @@ -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 &&
This looks like the wrong fix. Now the associative containers all have
implicit converting constructors from their key_compare.
Sebastian
More information about the cfe-commits
mailing list