[Issue 14830] New: RefCounted does not forward all fields of underlying data structure
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sun Jul 26 04:43:51 PDT 2015
https://issues.dlang.org/show_bug.cgi?id=14830
Issue ID: 14830
Summary: RefCounted does not forward all fields of underlying
data structure
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: enhancement
Priority: P1
Component: phobos
Assignee: nobody at puremagic.com
Reporter: joseph.wakeling at webdrake.net
Observed when trying to create a ref-counted random number generator:
import std.random, std.typecons;
static assert(isUniformRNG!Random);
static assert(isUniformRNG!(RefCounted!Random)); // FAILS
So far as I can tell, the problem is the check for the existence of the
isUniformRandom boolean enum in the isUniformRNG template check:
https://github.com/D-Programming-Language/phobos/blob/master/std/random.d#L137-L140
i.e. while this check passes:
static assert(is(typeof(Random.isUniformRandom)));
this corresponding one fails:
static assert(is(typeof((RefCounted!Random).isUniformRandom)));
Clearly one could put the blame on the isUniformRNG template check here, but my
feeling is that RefCounted should be able to forward _all_ properties and
fields of the underlying type, including compile-time enum flags like
isUniformRandom.
--
More information about the Digitalmars-d-bugs
mailing list