Let's say I have this class
class Point
{
inline float x() const { return v[0]; }
inline float y() const { return v[1]; }
inline float z() const { return v[2]; }
float v[3];
};
And I do:
Point myPoint;
myPoint[0] = 5;
// unrelated code goes here
float myVal = myPoint.x() + 5;
Will GCC on -o2
or -o3
optimize away any calls to x() with just getting v[0]? IE:
float myVal = myPoint.v[0] + 5;
Or is there a reason why this is impossible?
Update: Should mention I do realize inline
is more of a suggestion to the compiler than anything else, but was wondering anyways.
As an additional question, will templating this class have any effect on the optimizations that can be done?
Aucun commentaire:
Enregistrer un commentaire