Example with std.random.Random wrapped by RefRange. .min and .max properties are not forwarded.
text/x-dsrc
801
Comments
Comment #0 by joseph.wakeling — 2013-08-25T04:55:04Z
Created attachment 1244
Example with std.random.Random wrapped by RefRange. .min and .max properties are not forwarded.
When a range is wrapped by RefRange, _all_ the public methods and properties
should be forwarded.
The attached example shows a case where std.random.Random is wrapped by
RefRange. The regular range methods/properties are correctly forwarded, but
the .min and .max properties of Random are not, and the code fails with the
errors:
refrange.d(26): Error: no property 'min' for type
'RefRange!(MersenneTwisterEngine!(uint, 32, 624, 397, 31, 2567483615u, 11, 7,
2636928640u, 15, 4022730752u, 18))'
refrange.d(27): Error: no property 'max' for type
'RefRange!(MersenneTwisterEngine!(uint, 32, 624, 397, 31, 2567483615u, 11, 7,
2636928640u, 15, 4022730752u, 18))'
Desired behaviour: .min and .max properties should be present for
RefRange!Random.
Comment #1 by hsteoh — 2013-08-26T22:01:01Z
This is where it would be nice if the language supported alias *p this. :)
Comment #2 by joseph.wakeling — 2015-07-26T11:45:54Z
See also Issue #14830 for a similarly problematic issue with RNGs and RefCounted.
Comment #3 by robert.schadek — 2024-12-01T16:18:38Z