我想用如下原型编写一个函数
void fun(Thing *one, Thing *two, Thing *ret);
我想考虑一个事实,ret
可能会或可能不会被one
or别名two
。如果需要,这应该在运行时确定,并调用适当的代码。
这是一个坏主意吗?有语言语义吗?
编辑:我还没有明确表示我不想像这样if (one == ret || two == ret)
自然有效但对我来说似乎很冗长的手动测试。此外,我不希望两个几乎相同的情况重复代码(只有限定符不同)。我更多的是寻找惯用的好的解决方案,以及是否有任何语言语义支持这种情况。