C++에 C# nullable, 혹은 null object pattern을 대체할 문법을 구현해야 함
obj->f1()->f2(1)->f3(1, a)
C#에서 nullable 타입을 반환한다면
null에 메서드를 호출하면 아무 효과도 없고 세그멘테이션 폴트를 피하잖아?
이걸 메서드 1회 호출로 해내고 싶음
적용해야하는 범위가 방대하기 때문에 null object pattern을 적용하면
더미 메서드를 산더미처럼 만들어야하는데다 지저분해져서 지양하고 싶음
원본 코드
obj->f1()->f2(1)->f3(1, a)
변환된 기대 효과
r1 = obj->f1()
if (r1) {
r2 = r1->f2(1);
if (r2) {
f3(1, a)
}
}
예제 템플릿 호출
T( (T( T(obj, f1), f2, 1) f3, 1, a)
이런 식의 코드로 동일한 효과를 볼 수 있도록
템플릿 T를 구현하는게 논리적으로 가능한지부터를 몰라서 질문한거임
혹시 감이 올까?
씨샵 땜에 난 못한다 ㅇㅅㅇ
관심 가져줘서 고마워
operator -> 써봐
-> 연산자 재정의해서 더미 객체 같은거로 연결하라는거야? 이해는 못 했는데 공부해볼게
아. 기억이 날랑말랑한다. 맴버 메서드 호출하도록 오버로딩하는거 말하는거구나. 고마워. 실마리가 보일 것 같아