Author: marshall
Date: Tue May 17 12:44:40 2016
New Revision: 269789

URL: http://llvm.org/viewvc/llvm-project?rev=269789&view=rev
Log:
Implement LWG2576: istream_iterator and ostream_iterator should use 
std::addressof

Modified:
    libcxx/trunk/include/iterator
    libcxx/trunk/www/cxx1z_status.html

Modified: libcxx/trunk/include/iterator
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/iterator?rev=269789&r1=269788&r2=269789&view=diff
==============================================================================
--- libcxx/trunk/include/iterator (original)
+++ libcxx/trunk/include/iterator Tue May 17 12:44:40 2016
@@ -772,14 +772,14 @@ private:
     _Tp __value_;
 public:
     _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR istream_iterator() : 
__in_stream_(0), __value_() {}
-    _LIBCPP_INLINE_VISIBILITY istream_iterator(istream_type& __s) : 
__in_stream_(&__s)
+    _LIBCPP_INLINE_VISIBILITY istream_iterator(istream_type& __s) : 
__in_stream_(_VSTD::addressof(__s))
         {
             if (!(*__in_stream_ >> __value_))
                 __in_stream_ = 0;
         }
 
     _LIBCPP_INLINE_VISIBILITY const _Tp& operator*() const {return __value_;}
-    _LIBCPP_INLINE_VISIBILITY const _Tp* operator->() const {return 
&(operator*());}
+    _LIBCPP_INLINE_VISIBILITY const _Tp* operator->() const {return 
_VSTD::addressof((operator*()));}
     _LIBCPP_INLINE_VISIBILITY istream_iterator& operator++()
         {
             if (!(*__in_stream_ >> __value_))
@@ -811,9 +811,9 @@ private:
     const char_type* __delim_;
 public:
     _LIBCPP_INLINE_VISIBILITY ostream_iterator(ostream_type& __s)
-        : __out_stream_(&__s), __delim_(0) {}
+        : __out_stream_(_VSTD::addressof(__s)), __delim_(0) {}
     _LIBCPP_INLINE_VISIBILITY ostream_iterator(ostream_type& __s, const 
_CharT* __delimiter)
-        : __out_stream_(&__s), __delim_(__delimiter) {}
+        : __out_stream_(_VSTD::addressof(__s)), __delim_(__delimiter) {}
     _LIBCPP_INLINE_VISIBILITY ostream_iterator& operator=(const _Tp& __value_)
         {
             *__out_stream_ << __value_;

Modified: libcxx/trunk/www/cxx1z_status.html
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/www/cxx1z_status.html?rev=269789&r1=269788&r2=269789&view=diff
==============================================================================
--- libcxx/trunk/www/cxx1z_status.html (original)
+++ libcxx/trunk/www/cxx1z_status.html Tue May 17 12:44:40 2016
@@ -222,7 +222,7 @@
        <tr><td><a 
href="http://cplusplus.github.io/LWG/lwg-defects.html#2572";>2572</a></td><td>The
 remarks for <tt>shared_ptr::operator*</tt> should apply to <i>cv</i>-qualified 
<tt>void</tt> as well</td><td>Jacksonville</td><td>Complete</td></tr>
        <tr><td><a 
href="http://cplusplus.github.io/LWG/lwg-defects.html#2574";>2574</a></td><td>[fund.ts.v2]
 <tt>std::experimental::function::operator=(F&amp;&amp;)</tt> should be 
constrained</td><td>Jacksonville</td><td></td></tr>
        <tr><td><a 
href="http://cplusplus.github.io/LWG/lwg-defects.html#2575";>2575</a></td><td>[fund.ts.v2]
 <tt>experimental::function::assign</tt> should be 
removed</td><td>Jacksonville</td><td></td></tr>
-       <tr><td><a 
href="http://cplusplus.github.io/LWG/lwg-defects.html#2576";>2576</a></td><td><tt>istream_iterator</tt>
 and <tt>ostream_iterator</tt> should use 
<tt>std::addressof</tt></td><td>Jacksonville</td><td></td></tr>
+       <tr><td><a 
href="http://cplusplus.github.io/LWG/lwg-defects.html#2576";>2576</a></td><td><tt>istream_iterator</tt>
 and <tt>ostream_iterator</tt> should use 
<tt>std::addressof</tt></td><td>Jacksonville</td><td>Complete</td></tr>
        <tr><td><a 
href="http://cplusplus.github.io/LWG/lwg-defects.html#2577";>2577</a></td><td><tt>{shared,unique}_lock</tt>
 should use 
<tt>std::addressof</tt></td><td>Jacksonville</td><td>Complete</td></tr>
        <tr><td><a 
href="http://cplusplus.github.io/LWG/lwg-defects.html#2579";>2579</a></td><td>Inconsistency
 wrt Allocators in <tt>basic_string</tt> assignment vs. 
<tt>basic_string::assign</tt></td><td>Jacksonville</td><td>Complete</td></tr>
        <tr><td><a 
href="http://cplusplus.github.io/LWG/lwg-defects.html#2581";>2581</a></td><td>Specialization
 of <tt>&lt;type_traits&gt;</tt> variable templates should be 
prohibited</td><td>Jacksonville</td><td>Complete</td></tr>


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to