2012-03-26 14 views
8

He encontrado varias menciones sobre el método opDot, que permite sobrecargar el acceso de miembros alias operador de puntos, pero falta la documentación oficial. Seguramente no se ha descartado, ya que std.typecons.Unique lo usa.d2: ¿Qué son la semántica de opDot?

¿Alguien sabe cómo se puede utilizar opDot y por qué no hay documentación al respecto?

+3

Pruebe esto: http://www.digitalmars.com/d/archives/digitalmars/D/learn/how_to_use_opdot_14509.html – Raxillan

Respuesta

12

opDot ha sido scheduled for deprecation. Es por eso que no está documentado. No lo uses Use alias this en su lugar. Puede usarlo para alias un tipo o función particular a un tipo para que pueda actuar de ese tipo. p.ej.

struct S 
{ 
    int value; 
    alias value this; 
} 

se hará de manera que una variable de tipo S implícitamente convertir a int usando S 's value campo. Puede también funciona alias de esa manera:

struct S 
{ 
    int get() 
    { 
     return 7; 
    } 

    alias get this; 
} 

aunque eso puede ser más limitante, ya que actualmente no DMD soporte que tiene múltiples alias this es para un tipo (el tiempo debería sin embargo). En este caso, puede convertir implícitamente S en a int, pero no al revés. Regarldess, alias this está destinado a implementar conversiones implícitas.

Si alias this no es lo que quiere, otra posibilidad es opDispatch. Te permite transformar lo que está en el lado derecho del punto en otras cosas (por ejemplo, convertir todas las llamadas al foo en bar). Pero, entre esos dos, deberías poder hacer prácticamente cualquier cosa que estuvieras pensando hacer con opDot (y mucho más).

+0

Gracias, ¡respuesta muy clara! – toriningen

Cuestiones relacionadas