式タプルの代入
式タプルはそのままでは代入出来ません。
alias TypeTuple!(int, double) T; T t; void copy(T t_){ t = t_; // t is not an lvalue }
変数の癖に生意気なんだよおおおてめえええええええという気分になります。
さてどうすればいいのかというと、foreachを使いましょう。インデクサを通じてアクセスすることではじめて変数tは変数らしく振舞います。
void copy(T t_){ foreach(i,x; t_){ t[i] = x; } }
ここで不思議なのが、t[i]です。iとかどうみてもコンパイル時定数には見えないのに、コンパイル時定数しか渡せないはずのタプルのインデクサに渡せてます…謎!