gpt4 book ai didi

c++ - 用于创建对象的 Constexpr

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:50:13 24 4
gpt4 key购买 nike

我想弄清楚使用 constexpr 而不是通常创建对象是否有性能提升。

这是 constexpr 的代码片段。

class Rect
{
const int a;
const float b;
public:
constexpr Rect(const int a,const float b)
: a(a),b(b){}
};

int main()
{
constexpr Rect rect = Rect(1,2.0f);
}

并且没有constexpr

class Rect
{
int a;
float b;
public:
Rect(int a, float b)
: a(a),b(b){}
};

int main()
{
Rect rect = Rect(1,2.0f);
}

我原以为 constexpr 的代码会少很多,因为内存应该在编译时初始化。

我是否正确使用了 constexpr?如果这不是真的,您可以使用 constexpr 在编译时创建对象,然后在没有任何运行时开销的情况下使用它们吗?

谢谢!

最佳答案

事实证明,我包含了一些 header ,这些 header 负责代码的相似性。

答案是这两种情况有很大的不同。

When compiling without optimizations, there is a substantial difference in the generated code... -cdhowie

关于c++ - 用于创建对象的 Constexpr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44678277/

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