【发布时间】:2012-07-29 09:10:04
【问题描述】:
我想将float 封装在两个结构中,例如:
struct AngleDeg {
explicit AngleDeg(float angle):value(angle) {}
float value;
};
struct AngleRad {
explicit AngleRad(float angle):value(angle) {}
float value;
};
然后在一个类中使用这些结构重载一个函数,例如:
...
void DoStuff(AngleRad angle);
inline void DoStuff(AngleDeg angle) { DoStuff(Deg2Rad(angle.value)); }
...
这会和使用以下两个函数一样高效吗?
void DoStuffRad(float angle);
inline void DoStuffDeg(float angle) { DoStuffRad(Deg2Rad(angle)); }
【问题讨论】:
-
为什么不编写一个包含上述所有代码的程序来衡量每个代码的性能?
-
我做了一个基准测试并在答案中发布了我的结论。
标签: c++ performance inline encapsulation abstraction