From my reading of the standard, random_device::entropy() should return 0.0 if a software engine is used. However, in VS2010 it returns 32.0, which in my unders
Maybe it's a bug, maybe it isn't. But it sure looks deliberate. From Microsoft's own documentation:
The class describes a source of random numbers, preferably from a non-deterministic external device. In this implementation the values produced by default are not non-deterministic. They are uniformly distributed in the closed range [0, 65535].
And from the C++11 standard, section 26.5.6.6 on random_device:
result_type operator()();Returns: A non-deterministic random value, uniformly distributed between min() and max(), inclusive. It is implementation-defined how these values are generated.
By a strict reading of the standard, they shouldn't be able return anything other than 0 from entropy(). Perhaps they plan to improve the implementation someday and tried to make it do Something Reasonable for now. They do have an API call to generate cryptographically secure random numbers but don't appear to be using it for this yet.