使用constexpr会有收益递减吗?

时间:2015-02-16 16:35:53

标签: c++ c++11 constexpr

让我们说像我这样有一个constexpr:

constexpr int i = 42;

但到目前为止,我的程序没有任何i可以在编译时使用的情况,所以它相当无用。但是在将来,如果我想在编译时上下文中使用i,我不必回溯并添加constexpr。这可能就像const正确性一样,你把const放在正确的位置并且第一次就得到#34;还是只是不必要?制作一切constexpr有什么负面的弊端?

1 个答案:

答案 0 :(得分:0)

将事物标记为constexpr的唯一缺点与首先使用constexpr的缺点是一致的。

我想到的两个最大的缺点是你失去了编译器的可移植性(VC ++在支持constexpr方面已经很晚了)你不能在constexpr中使用“非平凡”对象{1}},例如std::string,即使您可以制作const

除此之外,在代码中使用constexpr而不是代码的大小没有特别的代价。如果您认为使用constexpr限定命名常量可能有用,请务必继续。这比使用预处理器常量更好。