d2: Was sind die Semantiken von opDot?

8

Ich habe mehrere Erwähnungen über die opDot-Methode getroffen, die es erlaubt, den Memberzugriff als Punktoperator zu überladen, aber die offizielle Dokumentation dafür fehlt. Es ist sicherlich nicht ausgefallen, wie es std.typecons.Unique nutzt.

Weiß jemand, wie OpDot verwendet werden kann und warum es keine Dokumentation darüber gibt?

    
toriningen 26.03.2012, 21:21
quelle

1 Antwort

12

opDot wurde als veraltet eingestuft . Deshalb ist es nicht dokumentiert. Benutze es nicht. Verwenden Sie stattdessen alias this . Sie können damit einen bestimmten Typ oder eine bestimmte Funktion für einen Typ verwenden, so dass er wie dieser Typ funktioniert. z.B.

%Vor%

macht es so, dass eine Variable vom Typ S implizit in int umgewandelt wird, indem S 's value verwendet wird. Sie können Funktionen auch wie folgt aliasieren:

%Vor%

Dies kann jedoch einschränkender sein, da dmd derzeit nicht unterstützt mehrere alias this es für einen Typ zu haben (sollte es aber letztendlich). In diesem Fall können Sie S implizit in ein int umwandeln, aber nicht umgekehrt. Regulardess, alias this ist für die Implementierung impliziter Konvertierungen vorgesehen.

Wenn alias this nicht ganz Ihren Wünschen entspricht, ist opDispatch eine weitere Möglichkeit. Es ermöglicht Ihnen, das, was sich auf der rechten Seite des Punktes befindet, in andere Dinge umzuwandeln (z. B. alle Aufrufe in foo in bar umzuwandeln). Aber zwischen diesen beiden solltest du in der Lage sein, mit opDot (und noch viel mehr) so ziemlich alles zu tun, was du vorhattest.

    
Jonathan M Davis 27.03.2012, 06:30
quelle

Tags und Links