F i*_*i L 7 benchmarking d dmd gdc
我正在将我们的统治SDK移植,增强和D-atizing 从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; }
}
Run Code Online (Sandbox Code Playgroud)
显然,我想使用工会来实现语法简洁.但使用它们有任何不可预见的陷阱吗?我不熟悉他们的低级细节.
另外,我正在添加类似于HLSL/GLSL的vector属性语法,例如,vec1.yxz + = vec2.xyz; 有......没有..可能的方式与工会而不是@property这样做?
Vla*_*eev 13
用alias
!
struct Vector2(T)
{
T x, y;
alias x u;
alias y v;
}
Run Code Online (Sandbox Code Playgroud)