2016-10-07 14 views
1

で読み取ることができないset.d|9|error: variable i cannot be read at compile time変数iが、私はこのコードを持ってコンパイル時

誰かが私のコードで何が間違っていると説明できますか?ありがとう。

+0

本当にすべてのコードですか? –

+1

'T [i]'行が間違っていて、Tが型で、配列が 'values'です –

+1

おそらく' values [i] 'を意味しましたか? – rcorre

答えて

0

これは答えです。コードは単に間違った変数を参照しただけです。 T [i]がタイプのコンパイル時のリストからインデックスを取得しようとしているというエラーが出た理由は、コンパイル時にも利用できるようにする必要があるからです。しかし、iは通常の変数なので、そうではありません。 (あなたは時間変数をコンパイルすることができますが、関数の結果はCTで評価されます。静的リストのforeach上のインデックスまたはenum値です。)しかし、ここでは、配列への実行時インデックスが必要でした。 ..これはタイプの代わりにデータなので、値は正しいシンボルです。

Adam D. Ruppe

+0

それは答えです。コードは単純に間違った変数を参照しました。それがエラーを出した理由は、 'T [i]'はコンパイル時に 'i'が必要な型のコンパイル時リストからインデックスを取得しようとしているからです。しかし、 'i'は通常の変数なので、そうではありません。 (コンパイル時の変数をbtwにすることができます - 関数の結果はCTで評価されるかもしれませんし、静的リストのforeach上のインデックス、または 'enum'値です)。 array ...これは型の代わりにデータであるため、 'values'は右のシンボルです。 –

+0

これは、この特定の間違いに対する本当にひどいエラーメッセージです。私たちがコンパイラ@ AdamD.Ruppeで特別なケースができるかどうかについて意見がありますか? – Meta

+0

これは意図的な添え字であるかどうかを知るのは難しいかもしれません....実際、Tはここでも添え字を付けることさえできません。 。しかし、もしそれが 'T ... 'だったら、このエラーはおそらく正しいだろう。 –

関連する問題