Why is it that the result of standard distributions isn't mandated to be consistent across implementations? The result of pseudo random number generators is on the other hand mandated to be identical.
For example, the following will almost certainly print something different for every different standard library implementation.
std::mt19937 random {100};
std::normal_distribution<> dist;
std::cout << dist(random);
Say I want to do procedural generation and would like identical starting seeds to result in identical results across platforms and compilers. I can't do it with the stl. I have to "regress" to using boost. Why isn't this a defect?
This is not a defect, it is by design. The rationale for this can be found in A Proposal to Add an Extensible Random Number Facility to the Standard Library (N1398) which says (emphasis mine):
This point is reiterated in the implementation defined section which says: