Jestem w trakcie przenoszenia, ulepszania i D-atizing naszego reign SDK z C# do D. Obecnie pracuje nad modułem matematyki Vector2.Wyniki D: union vs @property
Czy wystąpi różnica w wydajności między dwiema poniższymi strukturami? Moi benchmarki pokazują identyczną wydajność, ale chciałbym, aby zdobyć trochę eksperckiego wglądu :)
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; }
}
Oczywiście chciałbym używać związków dla składniowej prostocie. Ale czy są jakieś nieprzewidziane pułapki z ich użyciem? Nie znam szczegółów niskiego poziomu.
Na marginesie dodam składnię wektorową podobną do HLSL/GLSL, np. Vec1.yxz + = vec2.xyz; Nie ma ... nie ma możliwości, aby to zrobić ze związkami zamiast @property?
Będziesz potrzebować opDispatch dla 'vec1.yxz + = vec2.xyz', i wierzę, że ktoś już to zrobił. – kennytm
@KennyTM - masz rację - https://bitbucket.org/dav1d/gljm i https://bitbucket.org/dav1d/gl3n – DejanLekic