我试图弄清楚是否有通过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);
}
Run Code Online (Sandbox Code Playgroud)
没有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);
}
Run Code Online (Sandbox Code Playgroud)
constexpr因为内存应该在编译时初始化,所以我期待会有更少的代码.
我使用constexpr得当吗?如果不是这样,你可以使用constexpr在编译时创建对象,然后在没有任何运行时开销的情况下使用它们吗?
谢谢!