Define an order for allMembers traits

Andrey Zherikov andrey.zherikov at gmail.com
Wed Aug 23 13:53:30 UTC 2023


On Wednesday, 23 August 2023 at 12:39:09 UTC, Adam D Ruppe wrote:
> On Wednesday, 23 August 2023 at 12:32:58 UTC, Andrey Zherikov 
> wrote:
>> Is it possible to define an order at least for some cases (I'm 
>> looking for structs actually)?
>
> What do you do with the order of declaration?

I'm developing a [library to parse command line 
arguments](https://github.com/andrey-zherikov/argparse). One type 
of arguments is positional argument which means that they have a 
position in command line.
As of now (because the order of `allMembers` is not defined), 
these arguments are attributed the following way by explicitly 
providing the order:
```d
struct Params
{
     @PositionalArgument(0)
     string firstName;

     @PositionalArgument(1)
     string middleName;

     @PositionalArgument(2)
     string lastName;
}
```
If `allMembers` guarantees the order to be the same as the 
members are declared then the code above can be simplified to 
this:
```d
struct Params
{
     @PositionalArgument
     string firstName, middleName, lastName;
}
```



More information about the Digitalmars-d mailing list