Using a tuple as a function parameter

Andrew arobie1992 at yahoo.com
Fri Nov 22 16:36:43 UTC 2024


I'm getting started using D for some small personal projects and 
one thing I wanted to do was use a helper function for a tuple. I 
declared the function like this:

     string getOrZeroth(Tuple!(string, string, string) tup, int i) 
pure {
         return tup[i] == "" ? tup[0] : tup[i];
     }

and would like to use it like this:

     auto foo = tuple("a", "", "c");
     writeln(foo.getOrZeroth(1)); // prints a

but when I try it, I'm getting the below error:

> Error: variable \`i\` cannot be read at compile time

It would probably make more sense to create a class and make that 
a member function, but at this point I'm mostly just curious 
about how to use a tuple as a function parameter. I tried using a 
couple different options like `tuple` and `TypeTuple` as well as 
trying to convert the function into a template, but didn't have 
any better luck with those. I feel like I'm probably missing 
something silly, and any help would be appreciated.


More information about the Digitalmars-d-learn mailing list