<div dir="ltr"><div dir="ltr">On Sat, May 9, 2020 at 1:50 AM Adam D. Ruppe via Digitalmars-d <<a href="mailto:digitalmars-d@puremagic.com">digitalmars-d@puremagic.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Another potential use for this would be writing type translation <br>
functions.<br>
<br>
I've written something along these lines many times:<br>
<br>
      ParameterTypeTuple!T fargs;<br>
      foreach(idx, a; fargs) {<br>
            if(idx == args.length)<br>
                    break;<br>
      cast(Unqual!(typeof(a))) fargs[idx] = <br>
args[idx].get!(typeof(a));<br>
<br>
<br>
This converts arguments of a dynamic type to the static parameter <br>
types of a given function in preparation to call it.<br>
<br>
That ugly cast on the lhs there is to deal with const.<br>
<br>
      void foo(const int a) {}<br>
<br>
That function there needs the cast to assign to the const param.<br>
<br>
Well, with the static map, we MIGHT be able to just do<br>
<br>
foo(fromDynamic(fargs, args.pop)...)<br>
<br>
or something like that which expands in place so the mutable <br>
thing is implicitly cast to const without the explicit cast <br>
intermediate.<br>
<br>
<br>
I haven't tried that btw i just think it might work given the <br>
concept. That would be impossible with staticMap as-is because of <br>
the runtime variable in there.<br></blockquote><div><br></div><div>Yes! I use this pattern _all the time_ in C++, and it's definitely a motivating use case for `...` as I see it.</div><div>This is an intended and important use case.</div></div></div>