On Tuesday, 1 September 2020 at 02:08:54 UTC, JG wrote:
Is there anyway to remove the boilerplate code of dealing with
tuples:
I find myself having to write things like this fairly often
auto someRandomName = f(...); //where f returns a tuple with
two parts
auto firstPart = someRandomName[0];
auto secondPart = someRandomName[1];
Is to possible to write something so that the above is
essentially equivalent to:
assignTuple!(firstPart,secondPart) = f(...);
The closest I can produce is using a template mixin so that I
would have to write:
mixin AssignTuple!(()=>f(...),"firstPart","secondPart");
---
void assignTuple(S, T...)(auto ref S s, auto ref T t)
{
static foreach (i; 0 .. S.length)
t[i] = s[i];
}
void main()
{
import std;
string a,b;
tuple("a", "b").assignTuple(a,b);
}
---