Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
June 20, 2020 are std.traits.FieldNameTuple and std.traits.Fields returned value always in sync? | ||||
---|---|---|---|---|
| ||||
Are their returned value, i.e the field names and their types are always in the same order, and of the same length? If they are not, how to get sync-ed pairs (name, type)? If they are, why we need two separate calls, which cause confusion. |
June 20, 2020 Re: are std.traits.FieldNameTuple and std.traits.Fields returned value always in sync? | ||||
---|---|---|---|---|
| ||||
Posted in reply to mw | On Saturday, 20 June 2020 at 20:17:54 UTC, mw wrote:
> Are their returned value, i.e the field names and their types are always in the same order, and of the same length?
>
> If they are not, how to get sync-ed pairs (name, type)?
>
> If they are, why we need two separate calls, which cause confusion.
Yes, in the same order and of the same length. You need two because they're not calls (and the results are not "return values"), they're tuples constructed out of compile-time type information, and the former (FieldNameTuple) has to generate new symbols, which may not be desirable in cases when you don't need the names.
|
June 22, 2020 Re: are std.traits.FieldNameTuple and std.traits.Fields returned value always in sync? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stanislav Blinov | On Saturday, 20 June 2020 at 20:42:03 UTC, Stanislav Blinov wrote: > On Saturday, 20 June 2020 at 20:17:54 UTC, mw wrote: >> Are their returned value, i.e the field names and their types are always in the same order, and of the same length? >> >> If they are not, how to get sync-ed pairs (name, type)? >> >> If they are, why we need two separate calls, which cause confusion. > Yes, in the same order and of the same length. Can we add this information to the doc? to make it clear to the user: https://dlang.org/library/std/traits.html |
June 22, 2020 Re: are std.traits.FieldNameTuple and std.traits.Fields returned value always in sync? | ||||
---|---|---|---|---|
| ||||
Posted in reply to mw | On Monday, 22 June 2020 at 19:55:29 UTC, mw wrote: >> Yes, in the same order and of the same length. > > Can we add this information to the doc? to make it clear to the user: > > https://dlang.org/library/std/traits.html It's pretty clear in that doc already: alias FieldNameTuple(T) = staticMap!(NameOf,T.tupleof[0..__dollar-isNested!T]); alias Fields(T) = typeof(T.tupleof[0..__dollar-isNested!T]); But if you'd like it spelled out in text as well, you can make a PR for the Phobos repository. |
June 23, 2020 Re: are std.traits.FieldNameTuple and std.traits.Fields returned value always in sync? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stanislav Blinov | On Monday, 22 June 2020 at 20:08:37 UTC, Stanislav Blinov wrote: > But if you'd like it spelled out in text as well, you can make a PR for the Phobos repository. Just-Did-It: https://github.com/dlang/phobos/pull/7540 The point of doc is that the user don't have to dive into the code to know it's usage. |
Copyright © 1999-2021 by the D Language Foundation