Gotchas!

The module std.random documentation doesn't work as per the examples. The example shows getting a random number by the following code does not work:

<code>
// Generate a uniformly-distributed integer in the range [0, 14]
    auto i = uniform(0, 15);
    // Generate a uniformly-distributed real in the range [0, 100)
    // using a specific random generator
    Random gen;
    auto r = uniform(0.0L, 100.0L, gen);
</code>

<code>
    // Gets a random number
    int get_random() {
        auto rng = new Random(unpredictableSeed);
        auto rn = uniform(0, m_files.length, rng);
        return rn;
    }
</code>

The new keyword was not in the example, and the original example code would not work. When looking at the source code of the std libraries, a struct can contain a constructor, so therefore it is similar to a class; and on a whim I tried the new keyword. So I thought I would pass this information along. I looked at other posts in the forum, but didn't see anyone using the new keyword. Is this a bug, or a change to the D language implementation?

Reply via email to