estoy en el proceso de transferencia, mejorando, y D-atizing nuestra reign SDK de C# para D. Actualmente trabaja en el módulo de matemáticas Vector2.rendimiento D: Unión vs @property
Habrá alguna diferencia de rendimiento entre las dos estructuras de abajo? Mis puntos de referencia muestran un rendimiento idéntico, pero me gustaría ganar un poco de conocimiento experto :)
struct Vector2(T)
{
T x, y;
@property T u() { return x; }
@property T v() { return y; }
@property void u(T value) { x = value; }
@property void v(T value) { y = value; }
}
struct Vector2(T)
{
union { T x, u; }
union { T y, v; }
}
Obviamente me gustaría utilizar los sindicatos por la sencillez sintáctica. Pero, ¿hay alguna falla imprevista con su uso? No estoy familiarizado con sus detalles de bajo nivel.
En una nota lateral, que estoy añadiendo en sintaxis de la propiedad vector similar a HLSL/GLSL, por ejemplo, vec1.yxz + = vec2.xyz; No hay ... ninguna ... forma posible de hacer eso con sindicatos en lugar de @property ¿está ahí?
Necesitará opDispatch for 'vec1.yxz + = vec2.xyz', y creo que alguien ya lo ha hecho. – kennytm
@KennyTM - estás en lo correcto - https://bitbucket.org/dav1d/gljm y https://bitbucket.org/dav1d/gl3n – DejanLekic