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
    }
}
```

Reply via email to