基准测试 – D性能:union vs @property

我正在将我们的 reign SDK从C#移植,增强和D-a化到目前的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这样做吗?

使用别名!

struct Vector2(T)
{
    T x, y;
    alias x u;
    alias y v;
}
相关文章
相关标签/搜索