How to get element type of a slice?
jfondren
julian.fondren at gmail.com
Thu Aug 19 04:03:31 UTC 2021
On Thursday, 19 August 2021 at 03:32:47 UTC, Jesse Phillips wrote:
> On Thursday, 19 August 2021 at 03:29:03 UTC, Jesse Phillips
> wrote:
>> On Tuesday, 17 August 2021 at 12:33:03 UTC, Ferhat Kurtulmuş
>> wrote:
>>> On Tuesday, 17 August 2021 at 12:26:36 UTC, jfondren wrote:
>>>> On Tuesday, 17 August 2021 at 12:21:31 UTC, Ferhat Kurtulmuş
>>>> wrote:
>>>>> [...]
>>>>
>>>> This one's not in std.traits:
>>>>
>>>> ```d
>>>> import std.range : ElementType;
>>>>
>>>> struct Point { int x, y; }
>>>>
>>>> unittest {
>>>> Point[] points;
>>>> assert(is(ElementType!(typeof(points)) == Point));
>>>> }
>>>> ```
>>>
>>> Hey, thank you again but, I don't want an instance of Point[]
>>> I need:
>>>
>>> alias T = Point[];
>>>
>>> alias ElementOfPointSlice = .... // element type of T
>>
>
> Sorry last post was not complete. Not tested.
>
>
> ```
> alias T = Point[];
> alias ElementOfPointSlice = ElementType!(T);
>
> unittest {
> assert(is(ElementOfPointSlice == Point));
> }
> ```
so, what's the problem? This passes tests:
```d
import std.range : ElementType;
struct Point { int x, y; }
alias T = Point[];
alias ElementOfPointSlice = ElementType!(T);
unittest {
assert(is(ElementOfPointSlice == Point));
}
```
More information about the Digitalmars-d-learn
mailing list