+2010-02-16 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/bits/random.h (linear_congruential_engine(_Sseq&),
+ mersenne_twister_engine(_Sseq&), subtract_with_carry_engine(_Sseq&)):
+ Do not enable for the type itself.
+ (discard_block_engine(_Sseq&), independent_bits_engine(_Sseq&),
+ shuffle_order_engine(_Sseq&)): Do not enable for the type itself too.
+ (linear_congruential_engine<>::seed(_Sseq&),
+ mersenne_twister_engine<>::seed(_Sseq&),
+ subtract_with_carry_engine<>::seed(_Sseq&)): Use enable_if on the
+ return type.
+ (discard_block_engine<>::seed(_Sseq&),
+ independent_bits_engine<>::seed(_Sseq&),
+ shuffle_order_engine<>::seed(_Sseq&)): Do not use enable_if.
+ * include/bits/random.tcc: Adjust definitions.
+ * testsuite/26_numerics/random/independent_bits_engine/cons/copy.cc:
+ New.
+ * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
+ copy.cc: Likewise.
+ * testsuite/26_numerics/random/discard_block_engine/cons/
+ copy.cc: Likewise.
+ * testsuite/26_numerics/random/mersenne_twister_engine/cons/
+ copy.cc: Likewise.
+ * testsuite/26_numerics/random/linear_congruential_engine/cons/
+ copy.cc: Likewise.
+ * testsuite/26_numerics/random/shuffle_order_engine/cons/
+ copy.cc: Likewise.
+
+ * testsuite/26_numerics/random/independent_bits_engine/cons/
+ base_move.cc: Minor tweaks.
+ * testsuite/26_numerics/random/independent_bits_engine/cons/seed1.cc:
+ Likewise.
+ * testsuite/26_numerics/random/independent_bits_engine/cons/seed2.cc:
+ Likewise.
+ * testsuite/26_numerics/random/independent_bits_engine/cons/
+ base_copy.cc: Likewise.
+ * testsuite/26_numerics/random/independent_bits_engine/cons/
+ default.cc: Likewise.
+ * testsuite/26_numerics/random/independent_bits_engine/cons/
+ seed_seq.cc: Likewise.
+ * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
+ seed1.cc: Likewise.
+ * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
+ seed2.cc: Likewise.
+ * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
+ default.cc: Likewise.
+ * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
+ seed_seq.cc: Likewise.
+ * testsuite/26_numerics/random/discard_block_engine/cons/base_move.cc:
+ Likewise.
+ * testsuite/26_numerics/random/discard_block_engine/cons/seed1.cc:
+ Likewise.
+ * testsuite/26_numerics/random/discard_block_engine/cons/seed2.cc:
+ Likewise.
+ * testsuite/26_numerics/random/discard_block_engine/cons/base_copy.cc:
+ Likewise.
+ * testsuite/26_numerics/random/discard_block_engine/cons/default.cc:
+ Likewise.
+ * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq.cc:
+ Likewise.
+ * testsuite/26_numerics/random/mersenne_twister_engine/cons/seed1.cc:
+ Likewise.
+ * testsuite/26_numerics/random/mersenne_twister_engine/cons/seed2.cc:
+ Likewise.
+ * testsuite/26_numerics/random/mersenne_twister_engine/cons/
+ default.cc: Likewise.
+ * testsuite/26_numerics/random/mersenne_twister_engine/cons/
+ seed_seq.cc: Likewise.
+ * testsuite/26_numerics/random/linear_congruential_engine/cons/
+ seed1.cc: Likewise.
+ * testsuite/26_numerics/random/linear_congruential_engine/cons/
+ seed2.cc: Likewise.
+ * testsuite/26_numerics/random/linear_congruential_engine/cons/
+ seed_seq.cc: Likewise.
+ * testsuite/26_numerics/random/shuffle_order_engine/cons/base_move.cc:
+ Likewise.
+ * testsuite/26_numerics/random/shuffle_order_engine/cons/seed1.cc:
+ Likewise.
+ * testsuite/26_numerics/random/shuffle_order_engine/cons/seed2.cc:
+ Likewise.
+ * testsuite/26_numerics/random/shuffle_order_engine/cons/base_copy.cc:
+ Likewise.
+ * testsuite/26_numerics/random/shuffle_order_engine/cons/default.cc:
+ Likewise.
+ * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq.cc:
+ Likewise.
+
2010-02-16 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/unique_ptr.h: (unique_ptr<>::
*
* @param __q the seed sequence.
*/
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value>::type>
+ template<typename _Sseq, typename = typename
+ std::enable_if<!std::is_same<_Sseq, linear_congruential_engine>::value>
+ ::type>
explicit
linear_congruential_engine(_Sseq& __q)
- { seed<_Sseq>(__q); }
+ { seed(__q); }
/**
* @brief Reseeds the %linear_congruential_engine random number generator
*
* @param __q the seed sequence.
*/
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value>::type>
- void
+ template<typename _Sseq>
+ typename std::enable_if<std::is_class<_Sseq>::value>::type
seed(_Sseq& __q);
/**
*
* @param __q the seed sequence.
*/
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value>::type>
+ template<typename _Sseq, typename = typename
+ std::enable_if<!std::is_same<_Sseq, mersenne_twister_engine>::value>
+ ::type>
explicit
mersenne_twister_engine(_Sseq& __q)
- { seed<_Sseq>(__q); }
+ { seed(__q); }
void
seed(result_type __sd = default_seed);
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value>::type>
- void
+ template<typename _Sseq>
+ typename std::enable_if<std::is_class<_Sseq>::value>::type
seed(_Sseq& __q);
/**
*
* @param __q the seed sequence.
*/
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value>::type>
+ template<typename _Sseq, typename = typename
+ std::enable_if<!std::is_same<_Sseq, subtract_with_carry_engine>::value>
+ ::type>
explicit
subtract_with_carry_engine(_Sseq& __q)
- { seed<_Sseq>(__q); }
+ { seed(__q); }
/**
* @brief Seeds the initial state @f$x_0@f$ of the random number
* @brief Seeds the initial state @f$x_0@f$ of the
* % subtract_with_carry_engine random number generator.
*/
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value>::type>
- void
+ template<typename _Sseq>
+ typename std::enable_if<std::is_class<_Sseq>::value>::type
seed(_Sseq& __q);
/**
*
* @param __q A seed sequence.
*/
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value
- && !std::is_same<_Sseq, _RandomNumberEngine>
- ::value>::type>
+ template<typename _Sseq, typename = typename
+ std::enable_if<!std::is_same<_Sseq, discard_block_engine>::value
+ && !std::is_same<_Sseq, _RandomNumberEngine>::value>
+ ::type>
explicit
discard_block_engine(_Sseq& __q)
: _M_b(__q), _M_n(0)
* sequence.
* @param __q A seed generator function.
*/
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value>::type>
+ template<typename _Sseq>
void
seed(_Sseq& __q)
{
- _M_b.seed<_Sseq>(__q);
+ _M_b.seed(__q);
_M_n = 0;
}
*
* @param __q A seed sequence.
*/
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value
- && !std::is_same<_Sseq, _RandomNumberEngine>
- ::value>::type>
+ template<typename _Sseq, typename = typename
+ std::enable_if<!std::is_same<_Sseq, independent_bits_engine>::value
+ && !std::is_same<_Sseq, _RandomNumberEngine>::value>
+ ::type>
explicit
independent_bits_engine(_Sseq& __q)
: _M_b(__q)
* seed sequence.
* @param __q A seed generator function.
*/
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value>::type>
+ template<typename _Sseq>
void
seed(_Sseq& __q)
- { _M_b.seed<_Sseq>(__q); }
+ { _M_b.seed(__q); }
/**
* @brief Gets a const reference to the underlying generator engine
*
* @param __q A seed sequence.
*/
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value
- && !std::is_same<_Sseq, _RandomNumberEngine>
- ::value>::type>
+ template<typename _Sseq, typename = typename
+ std::enable_if<!std::is_same<_Sseq, shuffle_order_engine>::value
+ && !std::is_same<_Sseq, _RandomNumberEngine>::value>
+ ::type>
explicit
shuffle_order_engine(_Sseq& __q)
: _M_b(__q)
* sequence.
* @param __q A seed generator function.
*/
- template<typename _Sseq, typename
- = typename std::enable_if<std::is_class<_Sseq>::value>::type>
+ template<typename _Sseq>
void
seed(_Sseq& __q)
{
- _M_b.seed<_Sseq>(__q);
+ _M_b.seed(__q);
_M_initialize();
}
* Seeds the LCR engine with a value generated by @p __q.
*/
template<typename _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
- template<typename _Sseq, typename>
- void
+ template<typename _Sseq>
+ typename std::enable_if<std::is_class<_Sseq>::value>::type
linear_congruential_engine<_UIntType, __a, __c, __m>::
seed(_Sseq& __q)
{
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
_UIntType __b, size_t __t, _UIntType __c, size_t __l,
_UIntType __f>
- template<typename _Sseq, typename>
- void
+ template<typename _Sseq>
+ typename std::enable_if<std::is_class<_Sseq>::value>::type
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d,
__s, __b, __t, __c, __l, __f>::
seed(_Sseq& __q)
}
template<typename _UIntType, size_t __w, size_t __s, size_t __r>
- template<typename _Sseq, typename>
- void
+ template<typename _Sseq>
+ typename std::enable_if<std::is_class<_Sseq>::value>::type
subtract_with_carry_engine<_UIntType, __w, __s, __r>::
seed(_Sseq& __q)
{
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.1 class template discard_block_engine [rand.adapt.disc]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
typedef std::subtract_with_carry_engine<unsigned long, 24, 10, 24>
base_engine;
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.1 class template discard_block_engine [rand.adapt.disc]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
typedef std::subtract_with_carry_engine<unsigned long, 24, 10, 24>
base_engine;
--- /dev/null
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-02-16 Paolo Carlini <paolo.carlini@oracle.com>
+//
+// Copyright (C) 2010 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+void
+test01()
+{
+ std::discard_block_engine
+ <
+ std::subtract_with_carry_engine<unsigned long, 24, 10, 24>,
+ 389, 24
+ > e(1);
+
+ const auto f(e);
+ auto g(f);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.1 class template discard_block_engine [rand.adapt.disc]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
std::discard_block_engine
<
std::subtract_with_carry_engine<unsigned long, 24, 10, 24>,
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.1 class template discard_block_engine [rand.adapt.disc]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
unsigned long seed = 2;
std::discard_block_engine
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.1 class template discard_block_engine [rand.adapt.disc]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
double seed = 2.0;
std::discard_block_engine
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.1 class template discard_block_engine [rand.adapt.disc]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
std::seed_seq seq;
std::discard_block_engine
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.2 class template independent_bits_engine [rand.adapt.ibits]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
typedef std::subtract_with_carry_engine<uint_fast64_t, 48, 5, 12>
base_engine;
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.2 class template independent_bits_engine [rand.adapt.ibits]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
typedef std::subtract_with_carry_engine<uint_fast64_t, 48, 5, 12>
base_engine;
--- /dev/null
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-02-16 Paolo Carlini <paolo.carlini@oracle.com>
+//
+// Copyright (C) 2010 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+void
+test01()
+{
+ std::independent_bits_engine
+ <
+ std::subtract_with_carry_engine<uint_fast64_t, 48, 5, 12>,
+ 48,
+ uint_fast64_t
+ > e(1);
+
+ const auto f(e);
+ auto g(f);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.2 class template independent_bits_engine [rand.adapt.ibits]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
std::independent_bits_engine
<
std::subtract_with_carry_engine<uint_fast64_t, 48, 5, 12>,
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.2 class template independent_bits_engine [rand.adapt.ibits]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
unsigned long seed = 2;
std::independent_bits_engine
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.2 class template independent_bits_engine [rand.adapt.ibits]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
double seed = 2.0;
std::independent_bits_engine
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.2 class template independent_bits_engine [rand.adapt.ibits]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
std::seed_seq seq;
std::independent_bits_engine
--- /dev/null
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-02-16 Paolo Carlini <paolo.carlini@oracle.com>
+//
+// Copyright (C) 2010 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+void
+test01()
+{
+ std::linear_congruential_engine<unsigned long, 48271, 0, 2147483647> e(1);
+
+ const auto f(e);
+ auto g(f);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.3.1 class template linear_congruential_engine [rand.eng.lcong]
-// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.3.1 class template linear_congruential_engine [rand.eng.lcong]
-// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.3.1 class template linear_congruential_engine [rand.eng.lcong]
-// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
-
#include <random>
void
--- /dev/null
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-02-16 Paolo Carlini <paolo.carlini@oracle.com>
+//
+// Copyright (C) 2010 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+void
+test01()
+{
+ typedef unsigned long value_type;
+
+ std::mersenne_twister_engine<
+ value_type, 32, 624, 397, 31,
+ 0x9908b0dful, 11,
+ 0xfffffffful, 7,
+ 0x9d2c5680ul, 15,
+ 0xefc60000ul, 18, 1812433253ul> e(1);
+
+ const auto f(e);
+ auto g(f);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.3.2 Class template mersenne_twister_engine [rand.eng.mers]
-// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
-
#include <random>
#include <testsuite_hooks.h>
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.3.2 Class template mersenne_twister_engine [rand.eng.mers]
-// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.3.2 Class template mersenne_twister_engine [rand.eng.mers]
-// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.3.2 Class template mersenne_twister_engine [rand.eng.mers]
-// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
-
#include <random>
void
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.3 class template shuffle_order_engine [rand.adapt.shuf]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
typedef std::linear_congruential_engine
<uint_fast32_t, 16807UL, 0UL, 2147483647UL> base_engine;
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.3 class template shuffle_order_engine [rand.adapt.shuf]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
typedef std::linear_congruential_engine
<uint_fast32_t, 16807UL, 0UL, 2147483647UL> base_engine;
--- /dev/null
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-02-16 Paolo Carlini <paolo.carlini@oracle.com>
+//
+// Copyright (C) 2010 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+void
+test01()
+{
+ std::shuffle_order_engine
+ <
+ std::linear_congruential_engine<uint_fast32_t,16807UL, 0UL, 2147483647UL>,
+ 256
+ > e(1);
+
+ const auto f(e);
+ auto g(f);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.3 class template shuffle_order_engine [rand.adapt.shuf]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
std::shuffle_order_engine
<
std::linear_congruential_engine<uint_fast32_t,16807UL, 0UL, 2147483647UL>,
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.3 class template shuffle_order_engine [rand.adapt.shuf]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
unsigned long seed = 2;
std::shuffle_order_engine
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.3 class template shuffle_order_engine [rand.adapt.shuf]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
double seed = 2.0;
std::shuffle_order_engine
//
// 2008-12-07 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.4.3 class template shuffle_order_engine [rand.adapt.shuf]
-// 26.4.2.3 concept RandomNumberEngineAdaptor [rand.concept.adapt]
-
#include <random>
-#include <testsuite_hooks.h>
void
test01()
{
- bool test __attribute__((unused)) = true;
-
std::seed_seq seq;
std::shuffle_order_engine
--- /dev/null
+// { dg-options "-std=c++0x" }
+// { dg-require-cstdint "" }
+//
+// 2010-02-16 Paolo Carlini <paolo.carlini@oracle.com>
+//
+// Copyright (C) 2010 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <random>
+
+void
+test01()
+{
+ std::subtract_with_carry_engine<unsigned long, 24, 10, 24> e(1);
+
+ const auto f(e);
+ auto g(f);
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.3.3 Class template subtract_with_carry_engine [rand.eng.sub]
-// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
-
#include <random>
#include <testsuite_hooks.h>
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
#include <random>
-#include <testsuite_hooks.h>
void
test01()
//
// 2008-11-24 Edward M. Smith-Rowland <3dw4rd@verizon.net>
//
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
#include <random>
-#include <testsuite_hooks.h>
void
test01()
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// 26.4.3.3 Class template subtract_with_carry_engine [rand.eng.sub]
-// 26.4.2.2 Concept RandomNumberEngine [rand.concept.eng]
-
#include <random>
void