阅读标准C ++属性的最新提案[[pure]]我留下了许多问题:
答案 0 :(得分:4)
[[pure]],如果我没记错,需要100%确定特定输入应始终返回特定输出。考虑一个const全局变量和静态const全局变量应该永远不会改变状态,它应该没问题。最后,读取可以改变状态的指针将不是一个纯函数。如果你写入其他地方访问的指针,那么它有副作用,而不是[[pure]]。
你必须问自己,函数结果是否依赖于无关变量的状态,如果你回答是,那么它不是[[pure]]。您还必须问自己输入是否会对除返回值以外的任何内容产生影响。如果这是真的,那么它不是[[pure]]