GNU const / pure属性vs constexpr

问题描述 投票:3回答:2

GNU C和C ++提供constpure函数属性。从gnu online docs(强调我的):

在GNU C和C ++中,您可以使用函数属性来指定某些函数属性,这些属性可以帮助编译器优化调用或更仔细地检查代码的正确性。例如,您可以使用属性来指定函数从不返回(不返回),仅根据其参数的值(const)返回值或具有printf样式的参数(格式)。

其中const属性似乎是pure的超集,也取自gnu docs

const属性对函数的定义比纯属性相似。声明相同具有const和pure属性的函数将被诊断。

使用C ++ 11,添加了constexpr specifier

当应用于函数时,const属性和constexpr说明符之间有区别吗? GCC是否应用了不同的优化?

类似的问题是constexpr。但是我认为这不是重复的。我的问题特别是关于函数属性Difference between `constexpr` and `const`的,该属性似乎与const具有重叠的功能。

c++ c gcc constexpr purely-functional
2个回答
3
投票
应用于函数时,const属性和constexpr说明符之间有区别吗?

1
投票
((如果我没有记错,这是我第一次看到此属性;)
© www.soinside.com 2019 - 2024. All rights reserved.