I have inherited a C++ project that was written in 2014 and indeed compiles with GCC 4.8. In a particular file, several classes currently found in the <random> header of C++ standard library are instantiated. These include mt19937, random_device, uniform_real_distribution, and normal_distribution.
When I compile this file with GCC 7.3, I get an error saying that these classes are not defined in the std namespace. This error (obviously) goes away when I include <random>.
My question is why this error does not happen in GCC 4.8? Were these classes previously found under a different header?