From http://stackoverflow.com/q/29350040/2756719, repro: #include <random> int main(int, char **) { std::seed_seq seed1{1337, 42}; std::seed_seq seed2(seed1); std::seed_seq seed3 = seed2; return 0; } Per the class synopsis in [rand.util.seedseq], the copy constructor and assignment operator of seed_seq are deleted: // no copy functions seed_seq(const seed_seq& ) = delete; void operator=(const seed_seq& ) = delete; But the above code, incorrectly, compiles using libstdc++.
Confirmed, but we don't need to fix it for 5.1, it can wait.
done
Author: redi Date: Tue Apr 28 12:35:30 2015 New Revision: 222524 URL: https://gcc.gnu.org/viewcvs?rev=222524&root=gcc&view=rev Log: PR libstdc++/65631 * include/bits/random.h (seed_seq) Define copy constructor and copy assignment as deleted. * testsuite/26_numerics/random/seed_seq/cons/65631.cc: New. Added: trunk/libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/65631.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/random.h