Sono in procinto di eseguire il porting, migliorare e D-atizing il nostro reign SDK da C# a D. Attualmente funziona con il modulo di matematica Vector2.D performance: union vs @property
Ci sarà qualche differenza di prestazioni tra le due strutture di seguito? I miei punti di riferimento mostrano prestazioni identiche, ma mi piacerebbe avere un po 'di intuizione esperto :)
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; }
}
Ovviamente mi piacerebbe utilizzare i sindacati per semplicità sintattica. Ma c'è qualche insidia imprevista con il loro utilizzo? Non ho familiarità con i loro dettagli di basso livello.
In una nota a margine, sto aggiungendo la sintassi della proprietà vettoriale simile a HLSL/GLSL, ad es. Vec1.yxz + = vec2.xyz; C'è ... no ... il modo migliore per farlo con i sindacati invece di @property è lì?
Avrete bisogno di opDispatch per 'vec1.yxz + = vec2.xyz', e credo che qualcuno abbia già fatto questo. – kennytm
@KennyTM - sei corretto - https://bitbucket.org/dav1d/gljm e https://bitbucket.org/dav1d/gl3n – DejanLekic