gcc/libstdc++-v3/include/bits
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
..
algorithmfwd.h Update copyright years. 2018-01-03 11:03:58 +01:00
alloc_traits.h Update copyright years. 2018-01-03 11:03:58 +01:00
allocated_ptr.h Update copyright years. 2018-01-03 11:03:58 +01:00
allocator.h Update copyright years. 2018-01-03 11:03:58 +01:00
atomic_base.h Update copyright years. 2018-01-03 11:03:58 +01:00
atomic_futex.h Update copyright years. 2018-01-03 11:03:58 +01:00
basic_ios.h Update copyright years. 2018-01-03 11:03:58 +01:00
basic_ios.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
basic_string.h PR libstdc++/84087 add default arguments to basic_string members (LWG 2268) 2018-05-03 16:01:20 +01:00
basic_string.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
boost_concept_check.h Update copyright years. 2018-01-03 11:03:58 +01:00
c++0x_warning.h Update copyright years. 2018-01-03 11:03:58 +01:00
c++config PR libstdc++/85729 add linkage specifications to headers 2018-05-10 13:35:45 +01:00
char_traits.h Update copyright years. 2018-01-03 11:03:58 +01:00
codecvt.h Update copyright years. 2018-01-03 11:03:58 +01:00
concept_check.h Update copyright years. 2018-01-03 11:03:58 +01:00
cpp_type_traits.h Update copyright years. 2018-01-03 11:03:58 +01:00
deque.tcc deque.tcc (deque<>::_M_assign_aux): Cast to void to ensure overloaded comma not used. 2018-05-02 19:51:33 +00:00
enable_special_members.h Update copyright years. 2018-01-03 11:03:58 +01:00
forward_list.h 2018-01-10 François Dumont <fdumont@gcc.gnu.org> 2018-01-10 16:59:02 +00:00
forward_list.tcc 2018-01-10 François Dumont <fdumont@gcc.gnu.org> 2018-01-10 16:59:02 +00:00
fs_dir.h Update copyright years. 2018-01-03 11:03:58 +01:00
fs_fwd.h Update copyright years. 2018-01-03 11:03:58 +01:00
fs_ops.h Avoid redundant calls to filesystem::status_known 2018-01-04 13:46:22 +00:00
fs_path.h PR libstdc++/83891 fix path::is_absolute() for non-POSIX targets 2018-05-15 14:50:49 +01:00
fstream.tcc PR libstdc++/81256 fix exception handling in basic_filebuf::close 2018-05-14 19:57:45 +01:00
functexcept.h Update copyright years. 2018-01-03 11:03:58 +01:00
functional_hash.h Update copyright years. 2018-01-03 11:03:58 +01:00
gslice_array.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 17:41:46 +01:00
gslice.h Update copyright years. 2018-01-03 11:03:58 +01:00
hashtable_policy.h re PR libstdc++/83709 (Inserting duplicates into an unordered associative containers causes the container to invalidate iterators) 2018-01-09 21:05:10 +00:00
hashtable.h re PR libstdc++/83709 (Inserting duplicates into an unordered associative containers causes the container to invalidate iterators) 2018-01-09 21:05:10 +00:00
indirect_array.h Update copyright years. 2018-01-03 11:03:58 +01:00
invoke.h Update copyright years. 2018-01-03 11:03:58 +01:00
ios_base.h PR libstdc++/68197 fail on negative iword/pword indices 2018-05-02 20:04:55 +01:00
istream.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
list.tcc deque.tcc (deque<>::_M_assign_aux): Cast to void to ensure overloaded comma not used. 2018-05-02 19:51:33 +00:00
locale_classes.h Update copyright years. 2018-01-03 11:03:58 +01:00
locale_classes.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
locale_conv.h Update copyright years. 2018-01-03 11:03:58 +01:00
locale_facets_nonio.h Update copyright years. 2018-01-03 11:03:58 +01:00
locale_facets_nonio.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
locale_facets.h Update copyright years. 2018-01-03 11:03:58 +01:00
locale_facets.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
localefwd.h Update copyright years. 2018-01-03 11:03:58 +01:00
mask_array.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 17:41:46 +01:00
memoryfwd.h Update copyright years. 2018-01-03 11:03:58 +01:00
move.h Update copyright years. 2018-01-03 11:03:58 +01:00
node_handle.h PR libstdc++/82966 fix swapping of node handles 2018-05-14 15:27:54 +01:00
ostream_insert.h Update copyright years. 2018-01-03 11:03:58 +01:00
ostream.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
parse_numbers.h PR libstdc++/84671 handle digit separators in duration literals 2018-03-02 20:38:50 +00:00
postypes.h Update copyright years. 2018-01-03 11:03:58 +01:00
predefined_ops.h Update copyright years. 2018-01-03 11:03:58 +01:00
ptr_traits.h Update copyright years. 2018-01-03 11:03:58 +01:00
quoted_string.h Update copyright years. 2018-01-03 11:03:58 +01:00
random.h PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
random.tcc PR libstdc++/85749 constrain seed sequences for random number engines 2018-05-15 16:36:46 +01:00
range_access.h Update copyright years. 2018-01-03 11:03:58 +01:00
refwrap.h Update copyright years. 2018-01-03 11:03:58 +01:00
regex_automaton.h Make std::regex automata use non-debug vector in Debug Mode 2018-05-08 17:21:35 +01:00
regex_automaton.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
regex_compiler.h regex_compiler.h (_S_cache_size): Change from function to variable. 2018-05-10 15:12:23 -04:00
regex_compiler.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
regex_constants.h Update copyright years. 2018-01-03 11:03:58 +01:00
regex_error.h Update copyright years. 2018-01-03 11:03:58 +01:00
regex_executor.h Update copyright years. 2018-01-03 11:03:58 +01:00
regex_executor.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
regex_scanner.h Update copyright years. 2018-01-03 11:03:58 +01:00
regex_scanner.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
regex.h Update copyright years. 2018-01-03 11:03:58 +01:00
regex.tcc re PR libstdc++/83601 (std::regex_replace C++14 conformance issue: escaping in SED mode) 2018-01-14 00:48:30 +00:00
shared_ptr_atomic.h Update copyright years. 2018-01-03 11:03:58 +01:00
shared_ptr_base.h Update copyright years. 2018-01-03 11:03:58 +01:00
shared_ptr.h Update copyright years. 2018-01-03 11:03:58 +01:00
slice_array.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 17:41:46 +01:00
specfun.h Update copyright years. 2018-01-03 11:03:58 +01:00
sstream.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
std_abs.h PR libstdc++/85729 add linkage specifications to headers 2018-05-10 13:35:45 +01:00
std_function.h Make std::function tolerate semantically non-CopyConstructible objects 2018-05-09 14:28:11 +01:00
std_mutex.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_algo.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_algobase.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_bvector.h deque.tcc (deque<>::_M_assign_aux): Cast to void to ensure overloaded comma not used. 2018-05-02 19:51:33 +00:00
stl_construct.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_deque.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_function.h PR libstdc++/85040 fix std::less<void> etc. ambiguities 2018-03-22 14:23:27 +00:00
stl_heap.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_iterator_base_funcs.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_iterator_base_types.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_iterator.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_list.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_map.h re PR libstdc++/84998 (std::hash<std::bitset<N>> fails in Debug Mode) 2018-03-20 21:45:14 +00:00
stl_multimap.h re PR libstdc++/84998 (std::hash<std::bitset<N>> fails in Debug Mode) 2018-03-20 21:45:14 +00:00
stl_multiset.h re PR libstdc++/84998 (std::hash<std::bitset<N>> fails in Debug Mode) 2018-03-20 21:45:14 +00:00
stl_numeric.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_pair.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_queue.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_raw_storage_iter.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_relops.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_set.h re PR libstdc++/84998 (std::hash<std::bitset<N>> fails in Debug Mode) 2018-03-20 21:45:14 +00:00
stl_stack.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_tempbuf.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_tree.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_uninitialized.h Update copyright years. 2018-01-03 11:03:58 +01:00
stl_vector.h Update copyright years. 2018-01-03 11:03:58 +01:00
stream_iterator.h Update copyright years. 2018-01-03 11:03:58 +01:00
streambuf_iterator.h Update copyright years. 2018-01-03 11:03:58 +01:00
streambuf.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
string_view.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
stringfwd.h Update copyright years. 2018-01-03 11:03:58 +01:00
uniform_int_dist.h Update copyright years. 2018-01-03 11:03:58 +01:00
unique_ptr.h Update copyright years. 2018-01-03 11:03:58 +01:00
unordered_map.h re PR libstdc++/84998 (std::hash<std::bitset<N>> fails in Debug Mode) 2018-03-20 21:45:14 +00:00
unordered_set.h re PR libstdc++/84998 (std::hash<std::bitset<N>> fails in Debug Mode) 2018-03-20 21:45:14 +00:00
uses_allocator.h Update copyright years. 2018-01-03 11:03:58 +01:00
valarray_after.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 17:41:46 +01:00
valarray_array.h Add __attribute__((malloc) to allocator and remove unused code 2018-05-14 16:35:12 +01:00
valarray_array.tcc Update copyright years. 2018-01-03 11:03:58 +01:00
valarray_before.h PR libstdc++/83860 avoid dangling references in valarray closure types 2018-05-02 17:41:46 +01:00
vector.tcc deque.tcc (deque<>::_M_assign_aux): Cast to void to ensure overloaded comma not used. 2018-05-02 19:51:33 +00:00