March 19, 2018 [Issue 18631] New: std.random.choice does not work with const arrays | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=18631 Issue ID: 18631 Summary: std.random.choice does not work with const arrays Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nobody@puremagic.com Reporter: elpenguino+D@gmail.com ``` const x = [1,2]; auto y = choice(x); ``` results in ``` /dlang/dmd/linux/bin64/../../src/phobos/std/random.d(2033): Error: template std.random.choice cannot deduce function from argument types !()(const(int[]), MersenneTwisterEngine!(uint, 32LU, 624LU, 397LU, 31LU, 2567483615u, 11LU, 4294967295u, 7LU, 2636928640u, 15LU, 4022730752u, 18LU, 1812433253u)), candidates are: /dlang/dmd/linux/bin64/../../src/phobos/std/random.d(2020): std.random.choice(Range, RandomGen = Random)(auto ref Range range, ref RandomGen urng) if (isRandomAccessRange!Range && hasLength!Range && isUniformRNG!RandomGen) /dlang/dmd/linux/bin64/../../src/phobos/std/random.d(2031): std.random.choice(Range)(auto ref Range range) onlineapp.d(5): Error: template instance `std.random.choice!(const(int[]))` error instantiating ``` It appears that the only thing keeping this from working is x not being a range, but the body of the function does not seem to actually require that be true. -- |
Copyright © 1999-2021 by the D Language Foundation