Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
阅读了关于标准 C++ 属性[[pure]]的最新提案,我遇到了一些问题:
[[pure]],如果我没记错的话,需要 100% 确定特定输入应始终返回特定输出。考虑到 const globals 和 static const globals 永远不应该改变状态,应该没问题。最后,读取一个可以改变状态的指针并不是一个纯函数。如果您写入在其他地方访问的指针,那么它会产生副作用并且不是 [[pure]]。
你必须问自己函数结果是否依赖于无关变量的状态,如果你回答是,它不是 [[pure]]。您还必须问自己,输入是否会对返回值以外的任何内容产生影响。如果这是真的,那么它不是[[纯]]