을 고려 함수를 작성하는 방법은 다음과가능 앨리어싱
void fun(Thing *one, Thing *two, Thing *ret);
내가 ret
이 나 one
에 의해 별명되지 않을 수 있다는 사실을 고려하고 싶은 나 같은 프로토 타입 함수를 작성하고 싶습니다 two
. 필요한 경우 런타임에이 값을 결정하고 적절한 코드를 호출해야합니다.
이것은 나쁜 생각입니까? 이 언어 의미가 있습니까?
편집 : 나는 자연스럽게 작동하지만 매우 장황하게 보이는 if (one == ret || two == ret)
처럼 손으로 테스트하고 싶지 않다는 것을 분명히하지 않았다. 또한 두 개의 거의 동일한 경우에 대해 중복 된 코드를 원하지 않습니다 (한정자 만 다릅니다). 나는 더 이상 관용적으로 좋은 해결책이 무엇인지, 그런 경우를 지원하는 언어 의미가 있는지 찾아야한다.
쉬운 ...'(ret == one || ret == two) {/ * 별명 * /} else {/ * 별칭이 아닌 * /}' – Mankarse
@Caribou는 함수는'fun (& a, &b,&a);' –
@RoeeGavirel yep - quicke에 댓글을 달았습니다.) – Caribou