gpt4 book ai didi

c++ - GCC 会优化掉内联访问器吗?

转载 作者:行者123 更新时间:2023-12-05 00:54:00 26 4
gpt4 key购买 nike

假设我有这门课

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];
};

我这样做:
Point myPoint;
myPoint[0] = 5;

// unrelated code goes here

float myVal = myPoint.x() + 5;

请问GCC上 -O2-O3优化掉对 x() 的任何调用刚刚获得 v[0] ? IE:
float myVal = myPoint.v[0] + 5;

或者有什么理由说明这是不可能的?

更新:应该提到我确实意识到 inline对编译器的建议比其他任何东西都重要,但无论如何都想知道。

作为一个附加问题,对此类进行模板化是否会对可以进行的优化产生任何影响?

最佳答案

Will GCC optimize away an inline accessor?



所有优化编译器都会这样做。与其他优化相比,这是一个微不足道的优化。

Or is there a reason why this is impossible?



没有任何理由使它不可能,但也没有保证。

As an additional question, will templating this class have any effect on the optimizations that can be done?



不是。但是,当然,编译器可能有不同的模板内联阈值。

关于c++ - GCC 会优化掉内联访问器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60066017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com