Interesting work on packing tuple layout

Andrej Mitrovic andrej.mitrovich at gmail.com
Mon Jun 15 06:06:40 UTC 2020


On Saturday, 13 June 2020 at 19:11:33 UTC, Andrei Alexandrescu 
wrote:
> https://github.com/ZigaSajovic/optimizing-the-memory-layout-of-std-tuple
>
> Would be interesting to adapt it for std.tuple.

I can't see any way of making indexing work *except* by adding a 
Get template inside the tuple.

Currently Tuple supports indexing via `tuple[2]` => gets you the 
third value with its own type.

We cannot use opIndex for this because the tuple can consist of 
multiple types, and index is a runtime parameter when opIndex is 
called.

Now if we had something like `staticOpIndex` in the language 
maybe it could work. I could envision it being something like 
this:

```
struct Tuple (T...)
{
     T t;
     auto staticOpIndex (size_t index)()  // CT param
     {
         return t[index];  // or the rearranged index if fields 
are re-ordered
     }
}
```


More information about the Digitalmars-d-announce mailing list