私はopDotメソッドに関するいくつかの言及を満たしています。メンバーアクセスに別のドット演算子をオーバーロードすることができますが、それについての公式文書はありません。 std.typecons.Uniqueはそれを利用しているので、間違いなく脱落することはありません。d2:opDotのセマンティクスとは何ですか?
誰かが知っていることは、どのようにopDotを使用できるのか、それについてのドキュメントがないのですか?
私はopDotメソッドに関するいくつかの言及を満たしています。メンバーアクセスに別のドット演算子をオーバーロードすることができますが、それについての公式文書はありません。 std.typecons.Uniqueはそれを利用しているので、間違いなく脱落することはありません。d2:opDotのセマンティクスとは何ですか?
誰かが知っていることは、どのようにopDotを使用できるのか、それについてのドキュメントがないのですか?
opDot
がscheduled for deprecationであった。だから、それは文書化されていないのです。それを使用しないでください。代わりにalias this
を使用してください。特定の型または関数を型にエイリアスして、その型と同じように動作させることができます。例えばタイプS
の変数は暗黙のうちにS
のvalue
フィールドを使用してint
に変換するように
struct S
{
int value;
alias value this;
}
はそれを行います。 DMDは現在、(それが最終的にかかわらず、必要があります)タイプのために複数のalias this
ESを持つサポートしていないので、それは、制限よりかも知れません
struct S
{
int get()
{
return 7;
}
alias get this;
}
:あなたはそのようにもエイリアス機能をすることができます。この場合、S
を暗黙的にint
にキャストできますが、その逆はできません。 Regarldess、alias this
は、暗黙的な変換を実装するためのものです。
alias this
があなたの望むものではない場合、別の可能性はopDispatch
です。ドットの右側にあるものを他のものに変換できます(例:foo
へのすべての通話をbar
にする)。しかし、その2つの間で、あなたはopDot
(とはるかに多くの)でやっていることを考えていたことはほとんどできます。
ありがとう、非常に明確な答え! – toriningen
これを試してください:http://www.digitalmars.com/d/archives/digitalmars/D/learn/how_to_use_opdot_14509.html – Raxillan