これの小さな例を作ることはできないようですが、誰かが以前に遭遇したことがあるかもしれません。
Path
メソッドを持つクラス があり、メソッド内void find()
で型の連想配列をインスタンス化しようとするとint[string]
、次のようなリンカ エラーが発生します。
/tmp/ccTF0A0c.o: In function `_D6object28__T16AssociativeArrayTAyaTiZ16AssociativeArray6rehashMFNdZHAyai':
game.d:(.text._D6object28__T16AssociativeArrayTAyaTiZ16AssociativeArray6rehashMFNdZHAyai[_D6object28__T16AssociativeArrayTAyaTiZ16AssociativeArray6rehashMFNdZHAyai]+0x44): undefined reference to `_D14TypeInfo_HAyai6__initZ'
collect2: ld returned 1 exit status
クラスのメンバーに連想配列を貼り付けると、すべて問題ないように見えます。
コードは次のようになります。
class Path
{
int[string] bar; // Here it works.
void find()
{
int[string] foo; // Here it fails.
}
}