我们应该在所有可以使用的地方使用constexpr吗?

问题描述 投票:25回答:4

我们显然不能将所有内容都设为constexpr。而且,如果我们什么也没做constexpr,那么就不会有什么大问题了。到目前为止,已经编写了很多没有它的代码。

但是将constexpr拍成可能的任何东西是个好主意吗?这有潜在的问题吗?

c++ constexpr c++11
4个回答
14
投票

不会打扰编译器。当/如果您在不符合constexpr要求的代码上使用诊断程序,则编译器将(或无论如何)会给您诊断。

同时,我有点犹豫只将它拍在那儿,因为你可以。即使它不会/不会打扰compiler

,您的主要读者还是其他people都在阅读代码。至少是IMO,您应该使用constexpr向他们传达一个相当具体的含义,并将其打在其他表达式上,因为这可能会引起误解。我认为对于读者来说,标记为constexpr但仅用作正常运行时功能的函数发生了什么是公平的。

同时,如果您有一个诚实地期望

在编译时使用的函数,而您只是没有以这种方式使用[[尚,则将其标记为constexpr更加有意义。

8
投票
为什么我不麻烦尝试将constexpr放在每个机会列表中,并且没有特定顺序:

0
投票

0
投票
Effective Modern C ++
© www.soinside.com 2019 - 2024. All rights reserved.