【发布时间】:2012-11-20 10:02:00
【问题描述】:
C++11 中的一个是否可以在 gcc 中以某种方式将函数(不是类方法)标记为 const,告诉它是 纯 并且不使用全局内存而只使用它的论据?
我已经尝试过gcc 的__attribute__((const)),它正是我想要的。但在函数中触及全局内存时不会产生任何编译时错误。
编辑 1
请小心。我的意思是纯函数。 非恒定函数。 GCC 的属性有点混乱。纯函数只使用它们的参数。
【问题讨论】:
-
不知道你的意思,但你试过
constexpr -
不是这样的。我的意思是纯粹的不是恒定的。 GCC 的属性名称有点混乱。
-
我认为你需要重新表述你的问题,因为你有正确的属性。它不会产生你想要的警告是另一回事 - 至少在你的问题表面上是这样。
-
@LucDanton 是的,你完全正确。但令我惊讶的是它没有产生任何警告或编译错误。而且我想知道是否有任何方法可以在编译时检查它。
-
我开始感兴趣了。您能否解释一下您通常是如何做到这一点的,而不是在 C++11 中?