【D言語】動的配列を引数とする関数のメモ化
今回は、タイトルにある通り、動的配列を引数とする関数のメモ化に関する問題を掘り下げます。
何が問題なのか?
以下のコードがあります。
import std.stdio, std.functional;
int _func(int[] arg){
writeln("called");
return 0;
}
alias memoize!_func func;
void main(){
int[] a = [1, 1, 2, 3], b = [1, 1, 2, 3];
writeln("-----");
func(a);
writeln("-----");
func(b);
writeln("-----");
a[0] = 0;
func(a);
writeln("-----");
}
このコードを実際に実行するとどうなるでしょうか?