7
struct M{
T opIndex(uint i){ ... }
}
この:高次元で `opIndex`を実装する方法は?私に与え
m[i]
が、私が行うことができるように、私は2次元で何をしたい場合:
m[i][j]
これを行うには、とにかく何ですか?
struct M{
T opIndex(uint i){ ... }
}
この:高次元で `opIndex`を実装する方法は?私に与え
m[i]
が、私が行うことができるように、私は2次元で何をしたい場合:
m[i][j]
これを行うには、とにかく何ですか?
はい、インデックス演算子のオーバーロードもある一時オブジェクト(構造体はDの場合に最適です)を返すC++の方法があります。
はしかし、Dで良いアイデアが構文m[i, j]
のために行くことです:あなたはまだm[i][j]
を使用したい場合は、ネストされた構造体はあなたにいくつかの構文上の余裕を与える
struct S
{
uint opIndex(uint i, uint j)
{
return i + j;
}
}
void main()
{
S s;
assert(s[2, 3] == 5);
}
:
struct S
{
auto opIndex(uint i)
{
struct Temp
{
uint opIndex(uint j)
{
return i + j;
}
}
return Temp();
}
}
void main()
{
S s;
assert(s[2][3] == 5);
}
笑、いいよ!私は 'opIndex(uint i、uint j){return opIndex(...);}を実行していました。 } 'は動作しませんでした。ありがとう。 – Arlen