gcc/libstdc++-v3/testsuite/26_numerics/random
Jonathan Wakely 5a7960da41 PR libstdc++/85749 constrain seed sequences for random number engines
Constrain constructors and member functions of random number engines so
that functions taking seed sequences can only be called with types that
meet the seed sequence requirements.

	PR libstdc++/85749
	* include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
	(linear_congruential_engine, mersenne_twister_engine)
	(subtract_with_carry_engine, discard_block_engine)
	(independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
	constrain function templates taking seed sequences.
	* include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
	(mersenne_twister_engine::seed(_Sseq&))
	(subtract_with_carry_engine::seed(_Sseq&)): Change return types to
	match declarations.
	* include/ext/random (simd_fast_mersenne_twister_engine): Use
	__is_seed_seq to constrain function templates taking seed sequences.
	* include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
	Change return type to match declaration.
	* testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
	New.
	* testsuite/26_numerics/random/independent_bits_engine/cons/
	seed_seq2.cc: New.
	* testsuite/26_numerics/random/linear_congruential_engine/cons/
	seed_seq2.cc: New.
	* testsuite/26_numerics/random/mersenne_twister_engine/cons/
	seed_seq2.cc: New.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
	* testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
	New.
	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
	seed_seq2.cc: New.
	* testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
	seed_seq2.cc: New.

From-SVN: r260263
2018-05-15 16:36:46 +01:00
..
bernoulli_distribution
binomial_distribution
cauchy_distribution
chi_squared_distribution Remove duplicate "//" in comment 2018-01-29 14:09:52 +00:00
discard_block_engine PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
discrete_distribution
exponential_distribution
extreme_value_distribution
fisher_f_distribution
gamma_distribution
geometric_distribution
independent_bits_engine PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
linear_congruential_engine PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
lognormal_distribution
mersenne_twister_engine PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
negative_binomial_distribution
normal_distribution
piecewise_constant_distribution
piecewise_linear_distribution
poisson_distribution
random_device
seed_seq
shuffle_order_engine PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
student_t_distribution
subtract_with_carry_engine PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
uniform_int_distribution
uniform_real_distribution
weibull_distribution
default_random_engine.cc
knuth_b.cc
minstd_rand0.cc
minstd_rand.cc
mt19937_64.cc
mt19937.cc
pr60037-neg.cc PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
ranlux24_base.cc
ranlux24.cc
ranlux48_base.cc
ranlux48.cc