用于创建对象的 consexpr
Constexpr for creating objects
我试图弄清楚使用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
在编译时创建对象,然后在没有任何运行时开销的情况下使用它们?
谢谢!
事实证明,我包含了一些标题,这些标头负责代码的相似性。
答案是,这两种情况之间存在很大差异。
在没有优化的情况下进行编译时,生成的代码存在实质性差异...... -德豪伊
相关文章:
- 使用基类指针创建对象时,缺少派生类析构函数
- 如何创建对象函数指针C++映射?
- C++创建对象数组
- 在 C++ 的 Switch Case 中创建对象后对对象调用方法
- 如何获取在 main() 函数中构造的类的创建对象?
- 基于文件中的条目创建对象
- 错误:创建对象后无法分配区域
- C++ 通过输入创建对象
- 堆还是堆栈用于创建对象?
- 使用 C++ 创建对象数组
- 使用unique_ptr创建对象
- C++递归地在类构造函数中创建对象
- 通过向构造函数其他对象引用页面来创建对象
- ReactiveX (rx) - 在对象上应用可观察对象,而不是在可观察对象中创建对象
- 如何在OSX上正确创建C++对象文件(.o)
- 编译器是否会创建vtable,而不考虑在c++中创建对象
- 创建对象并防止被破坏
- 在C++中,友元类可以从友元类创建对象吗
- 只在堆中创建C++对象
- 用于创建对象的 consexpr