diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2009-12-11 17:54:37 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2009-12-11 17:54:37 +0000 |
commit | 8246b3148ea869d8f2cc2d420312feed719943db (patch) | |
tree | 28caefabc633e943e39366948da14657774645b2 | |
parent | f9679d8ae7199b2aba04614d7927a3dcd57c2bf3 (diff) | |
download | gcc-8246b3148ea869d8f2cc2d420312feed719943db.zip gcc-8246b3148ea869d8f2cc2d420312feed719943db.tar.gz gcc-8246b3148ea869d8f2cc2d420312feed719943db.tar.bz2 |
PR libstdc++/22634, DR 539 [Ready]
2009-12-11 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/22634, DR 539 [Ready]
* include/bits/stl_numeric.h (adjacent_difference): Use std::move
at the end of the loop body, per the Ready resolution.
* include/std/numeric: Do not include unnecessarily <cstddef>.
* doc/xml/manual/intro.xml: Add an entry for DR 539.
From-SVN: r155173
-rw-r--r-- | libstdc++-v3/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/doc/xml/manual/intro.xml | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_numeric.h | 11 | ||||
-rw-r--r-- | libstdc++-v3/include/std/numeric | 1 |
4 files changed, 25 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 31224f3..68930ac 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,13 @@ 2009-12-11 Paolo Carlini <paolo.carlini@oracle.com> + PR libstdc++/22634, DR 539 [Ready] + * include/bits/stl_numeric.h (adjacent_difference): Use std::move + at the end of the loop body, per the Ready resolution. + * include/std/numeric: Do not include unnecessarily <cstddef>. + * doc/xml/manual/intro.xml: Add an entry for DR 539. + +2009-12-11 Paolo Carlini <paolo.carlini@oracle.com> + * doc/html/ext/lwg-active.html: Update to Revision R68. * doc/html/ext/lwg-closed.html: Likewise. * doc/html/ext/lwg-defects.html: Likewise. diff --git a/libstdc++-v3/doc/xml/manual/intro.xml b/libstdc++-v3/doc/xml/manual/intro.xml index da06cd9..1c5e7f6 100644 --- a/libstdc++-v3/doc/xml/manual/intro.xml +++ b/libstdc++-v3/doc/xml/manual/intro.xml @@ -699,6 +699,14 @@ requirements of the license of GCC. input_iterator' value_type. </para></listitem></varlistentry> + <varlistentry><term><ulink url="../ext/lwg-active.html#539">539</ulink>: + <emphasis>partial_sum and adjacent_difference should mention + requirements</emphasis> + </term> + <listitem><para>We were almost doing the right thing, just use std::move + in adjacent_difference. + </para></listitem></varlistentry> + <varlistentry><term><ulink url="../ext/lwg-defects.html#541">541</ulink>: <emphasis>shared_ptr template assignment and void</emphasis> </term> diff --git a/libstdc++-v3/include/bits/stl_numeric.h b/libstdc++-v3/include/bits/stl_numeric.h index 5edf2bc..1adddf6 100644 --- a/libstdc++-v3/include/bits/stl_numeric.h +++ b/libstdc++-v3/include/bits/stl_numeric.h @@ -59,6 +59,7 @@ #include <bits/concept_check.h> #include <debug/debug.h> +#include <bits/move.h> // For _GLIBCXX_MOVE #ifdef __GXX_EXPERIMENTAL_CXX0X__ @@ -302,6 +303,9 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) * @param last End of input range. * @param result Output to write sums to. * @return Iterator pointing just beyond the values written to result. + * + * _GLIBCXX_RESOLVE_LIB_DEFECTS + * DR 539. partial_sum and adjacent_difference should mention requirements */ template<typename _InputIterator, typename _OutputIterator> _OutputIterator @@ -324,7 +328,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) { _ValueType __tmp = *__first; *++__result = __tmp - __value; - __value = __tmp; + __value = _GLIBCXX_MOVE(__tmp); } return ++__result; } @@ -340,6 +344,9 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) * @param last End of input range. * @param result Output to write sums to. * @return Iterator pointing just beyond the values written to result. + * + * _GLIBCXX_RESOLVE_LIB_DEFECTS + * DR 539. partial_sum and adjacent_difference should mention requirements */ template<typename _InputIterator, typename _OutputIterator, typename _BinaryOperation> @@ -363,7 +370,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) { _ValueType __tmp = *__first; *++__result = __binary_op(__tmp, __value); - __value = __tmp; + __value = _GLIBCXX_MOVE(__tmp); } return ++__result; } diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric index 43d76d9..1acedf4 100644 --- a/libstdc++-v3/include/std/numeric +++ b/libstdc++-v3/include/std/numeric @@ -58,7 +58,6 @@ #pragma GCC system_header #include <bits/c++config.h> -#include <cstddef> #include <bits/stl_iterator_base_types.h> #include <bits/stl_numeric.h> |