​DonClugston​​​最先发现的.假设我有带​​成员函数​​​的​​结构​​:

struct S { int s; pure void set(int i) { s = i; }

现在,即使在​​强纯​​​函数中,我也可以使用​​弱纯​​​函数,即使它通过​​参数改变状态​​:

int foo(int i) {
S s;
s.set(i);
...
return whatever;
}

即,​​弱纯​​​函数效果像​​示例​​​中那样,​​局部化​​​时,可以从​​强纯​​​函数调用它们,而​​强纯​​​函数仍保持​​强纯​​​.
这是​​​非常酷​​​的想法,我花了​​一点时间​​​才明白,但​​Don​​坚持向我解释:-)

​1参考​​​​2参考​