From patchwork Wed Aug 11 17:11:51 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v3] Resolve US 121 From: Paolo Carlini X-Patchwork-Id: 61491 Message-Id: <4C62D9D7.7050200@oracle.com> To: "gcc-patches@gcc.gnu.org" Cc: libstdc++ Date: Wed, 11 Aug 2010 19:11:51 +0200 Hi, as agreed in Rapperswil. Tested x86_64-linux, committed. Paolo. ///////////////////////// 2010-08-11 Paolo Carlini * include/bits/stl_algo.h (shuffle): Change signature consistently with random_shuffle (US 121). * include/bits/algorithmfwd.h: Adjust. * testsuite/25_algorithms/shuffle/requirements/ explicit_instantiation/2.cc: Likewise. * testsuite/25_algorithms/shuffle/requirements/ explicit_instantiation/pod.cc: Likewise. Index: include/bits/stl_algo.h =================================================================== --- include/bits/stl_algo.h (revision 163100) +++ include/bits/stl_algo.h (working copy) @@ -4133,7 +4133,7 @@ typename _UniformRandomNumberGenerator> void shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, - _UniformRandomNumberGenerator& __g) + _UniformRandomNumberGenerator&& __g) { // concept requirements __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept< Index: include/bits/algorithmfwd.h =================================================================== --- include/bits/algorithmfwd.h (revision 163100) +++ include/bits/algorithmfwd.h (working copy) @@ -521,7 +521,7 @@ #if defined(__GXX_EXPERIMENTAL_CXX0X__) && defined(_GLIBCXX_USE_C99_STDINT_TR1) template void - shuffle(_RAIter, _RAIter, _UGenerator&); + shuffle(_RAIter, _RAIter, _UGenerator&&); #endif template Index: testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/2.cc =================================================================== --- testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/2.cc (revision 163100) +++ testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/2.cc (working copy) @@ -21,7 +21,6 @@ // with this library; see the file COPYING3. If not see // . - #include #include #include @@ -34,5 +33,5 @@ typedef value_type* iterator_type; typedef std::mt19937_64 ugenerator_type; - template void shuffle(iterator_type, iterator_type, ugenerator_type&); + template void shuffle(iterator_type, iterator_type, ugenerator_type&&); } Index: testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/pod.cc =================================================================== --- testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/pod.cc (revision 163100) +++ testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/pod.cc (working copy) @@ -33,5 +33,5 @@ typedef value_type* iterator_type; typedef std::mt19937_64 ugenerator_type; - template void shuffle(iterator_type, iterator_type, ugenerator_type&); + template void shuffle(iterator_type, iterator_type, ugenerator_type&&); }