Производительность D: union vs @property

Я занимаюсь портированием, улучшением и преобразованием нашего reign 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?

7
задан F i L 31 December 2011 в 09:05
поделиться