digitalmars.D.learn - Enumerate CTFE bug...
- Paolo Invernizzi (20/20) Nov 21 2016 I'm not sure if it's the same as #15064 bug:
- Stefan Koch (4/24) Nov 21 2016 Yes looks like it.
import std.array, std.range, std.algorithm; immutable static foo = ["a", "b", "c"]; auto bar(R)(R r) { string s = r[1]; return s; } immutable static res = foo.enumerate.map!bar().array; std/typecons.d(526): Error: reinterpreting cast from inout(ulong)* to inout(Tuple!(ulong, immutable(string)))* is not supported in CTFE bug.d(9): called from here: r._Tuple_super() std/algorithm/iteration.d(593): called from here: bar(this._input.front()) std/array.d(105): called from here: __r2091.front() bug.d(15): called from here: array(map(enumerate(foo, 0LU))) --- Paolo
Nov 21 2016
On Monday, 21 November 2016 at 13:22:57 UTC, Paolo Invernizzi wrote:import std.array, std.range, std.algorithm; immutable static foo = ["a", "b", "c"]; auto bar(R)(R r) { string s = r[1]; return s; } immutable static res = foo.enumerate.map!bar().array; std/typecons.d(526): Error: reinterpreting cast from inout(ulong)* to inout(Tuple!(ulong, immutable(string)))* is not supported in CTFE bug.d(9): called from here: r._Tuple_super() std/algorithm/iteration.d(593): called from here: bar(this._input.front()) std/array.d(105): called from here: __r2091.front() bug.d(15): called from here: array(map(enumerate(foo, 0LU))) --- PaoloYes looks like it. Adding a special case in phobos should solve the problem.
Nov 21 2016