7
我正在将我们的reign SDK从C#移植到D,并将D-Atizing从C#转换为D.目前正在使用Vector2数学模块。D性能:union vs @property
下面两个结构之间是否会有性能差异?我的基准测试显示相同的性能,但我想获得一个位专家的见解的:)
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在那里?
您需要'vec1.yxz + = vec2.xyz'的opDispatch,我相信有人已经这样做了。 – kennytm 2011-12-31 09:49:39
@KennyTM - 你是对的 - https://bitbucket.org/dav1d/gljm和https://bitbucket.org/dav1d/gl3n – DejanLekic 2011-12-31 12:15:11