<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">On Apr 15, 2014, at 1:03 PM, Richard Smith <<a href="mailto:richard@metafoo.co.uk">richard@metafoo.co.uk</a>> wrote:<br><div><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Mar 9, 2014 at 9:50 PM, Marshall Clow <span dir="ltr"><<a href="mailto:mclow.lists@gmail.com" target="_blank">mclow.lists@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: marshall<br>
Date: Sun Mar  9 23:50:10 2014<br>
New Revision: 203443<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=203443&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=203443&view=rev</a><br>
Log:<br>
Fix bug I introduced (enabling implicit conversions from compare function to map) in r202994. Thanks to Sebastian Redl for the catch.<br>
<br>
Modified:<br>
    libcxx/trunk/include/map<br>
    libcxx/trunk/include/set<br>
<br>
Modified: libcxx/trunk/include/map<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/map?rev=203443&r1=203442&r2=203443&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/map?rev=203443&r1=203442&r2=203443&view=diff</a><br>

==============================================================================<br>
--- libcxx/trunk/include/map (original)<br>
+++ libcxx/trunk/include/map Sun Mar  9 23:50:10 2014<br>
@@ -835,7 +835,15 @@ public:<br>
     typedef _VSTD::reverse_iterator<const_iterator>         const_reverse_iterator;<br>
<br>
     _LIBCPP_INLINE_VISIBILITY<br>
-    map(const key_compare& __comp = key_compare())<br>
+    map()<br>
+        _NOEXCEPT_(<br>
+            is_nothrow_default_constructible<allocator_type>::value &&<br>
+            is_nothrow_default_constructible<key_compare>::value &&<br>
+            is_nothrow_copy_constructible<key_compare>::value)<br>
+        : __tree_(__vc(key_compare())) {}<br>
+<br>
+    _LIBCPP_INLINE_VISIBILITY<br>
+    explicit map(const key_compare& __comp)<br>
         _NOEXCEPT_(<br>
             is_nothrow_default_constructible<allocator_type>::value &&<br>
             is_nothrow_default_constructible<key_compare>::value &&<br></blockquote><div><br></div><div>The is_nothrow_default_constructible<key_compare>::value here looks unnecessary; we don't default construct a key_compare here any more.</div></div></div></div></blockquote><div><br></div>[ Other cases snipped]</div><div><br></div><div>Committed revision 206424 to fix this.<br></div><div>Thanks!</div><div><br></div><div>— Marshall</div></body></html>