Я в процессе портирования, расширения и D-аптизации нашего царственного SDK с C # на D. В настоящее время работаю над математическим модулем Vector2.
Будет лиразница в производительности между двумя структурами ниже?Мои тесты показывают одинаковую производительность, но я хотел бы получить немного экспертного понимания:)
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; }
}
Очевидно, я хотел бы использовать объединения для синтаксической простоты.Но есть ли непредвиденные подводные камни при их использовании?Мне незнакомы их подробности низкого уровня.
В дополнение к этому я добавляю синтаксис векторного свойства, похожего на HLSL / GLSL, например, vec1.yxz + = vec2.xyz;Есть ... нет ... возможный способ сделать это с помощью союзов вместо @property?