D performance: union vs @property



我正在将我们的主导SDK从c#移植,增强和d化到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; }
}

显然,我希望使用联合来简化语法。但是使用它们会不会有不可预见的陷阱呢?我不熟悉他们的底层细节。

在旁注中,我添加了类似于hsl/GLSL的矢量属性语法,例如vec1。Yxz += vec2.xyz;有……没有. .有可能用联合而不是@property来做到这一点吗?

使用alias

struct Vector2(T)
{
    T x, y;
    alias x u;
    alias y v;
}

相关内容

  • 没有找到相关文章

最新更新