我们显然不能将所有内容都设为constexpr
。而且,如果我们什么也没做constexpr
,那么就不会有什么大问题了。到目前为止,已经编写了很多没有它的代码。
但是将constexpr
拍成可能的任何东西是个好主意吗?这有潜在的问题吗?
不会打扰编译器。当/如果您在不符合constexpr
要求的代码上使用诊断程序,则编译器将(或无论如何)会给您诊断。
同时,我有点犹豫只将它拍在那儿,因为你可以。即使它不会/不会打扰compiler
,您的主要读者还是其他people都在阅读代码。至少是IMO,您应该使用constexpr
向他们传达一个相当具体的含义,并将其打在其他表达式上,因为这可能会引起误解。我认为对于读者来说,标记为constexpr
但仅用作正常运行时功能的函数发生了什么是公平的。同时,如果您有一个诚实地期望
在编译时使用的函数,而您只是没有以这种方式使用[[尚,则将其标记为constexpr
更加有意义。constexpr
放在每个机会列表中,并且没有特定顺序: