February 23, 2021 Why does this not pass | ||||
---|---|---|---|---|
| ||||
Why does all these pass: static assert(is(ElementEncodingType!(char[]) == char)); static assert(is(ElementEncodingType!(wstring) == immutable(wchar))); static assert(is(ElementEncodingType!(byte[]) == byte)); static assert(is(ElementEncodingType!(ubyte[]) == ubyte)); auto range = iota(0, 10); static assert(is(ElementEncodingType!(typeof(range)) == int)); static assert(is(ElementEncodingType!(immutable(ubyte)[]) == immutable(ubyte))); But not this: static assert(is(ElementEncodingType!(AsciiChar[]) == AsciiChar)); |
February 23, 2021 Re: Why does this not pass | ||||
---|---|---|---|---|
| ||||
Posted in reply to Imperatorn | On Tuesday, 23 February 2021 at 09:21:44 UTC, Imperatorn wrote:
> Why does all these pass:
> static assert(is(ElementEncodingType!(char[]) == char));
> static assert(is(ElementEncodingType!(wstring) == immutable(wchar)));
> static assert(is(ElementEncodingType!(byte[]) == byte));
> static assert(is(ElementEncodingType!(ubyte[]) == ubyte));
>
> auto range = iota(0, 10);
> static assert(is(ElementEncodingType!(typeof(range)) == int));
> static assert(is(ElementEncodingType!(immutable(ubyte)[]) == immutable(ubyte)));
>
> But not this:
> static assert(is(ElementEncodingType!(AsciiChar[]) == AsciiChar));
omg forgot to import std.range 🙄
But the question is kinda still valid, like in the case of std.array.appender.
The original poster:
"Appender defines its element type with ElementEncodingType which only passes immutability through for built-in string types"
|
Copyright © 1999-2021 by the D Language Foundation