이유가 뭔지 모르겠네
함수의 리턴값 자료형에 대해선 왜 오버로딩이 안되는가
융구친구(nimoya90)
2016-10-26 20:23
추천 0
댓글 29
다른 게시글
-
와 시발 살다살다 지잡대 똥군기는 오랜만에 당해보네 [4]롤미송면(kim93113) | 16.10.26추천 2
-
요즘 미치겠다.. [2]troublecod..(troublecoder) | 16.10.26추천 0
-
컴파일뜻을 알앗어용 [4]새벽시엘(aubeciel) | 16.10.26추천 13
-
음 찻집 채팅방 열어놓고 코딩해야지.codesafer(codesafer) | 16.10.26추천 1
-
.net framework 공부하려면 어느 정도 걸림? [4]익명(121.183) | 16.10.26추천 0
-
코세아재가 말한책이 이거임?? [10]피에로~(zelot) | 16.10.26추천 0
-
겨울에는 어찌하냥 [5]백이(183.100) | 16.10.26추천 0
-
앞으로는 리액트를 할줄아는자와 모르는자로 구분된다.리액트(61.102) | 16.10.26추천 0
-
아싸돈쥬움 ㅎㅎ [1]피에로~(zelot) | 16.10.26추천 0
-
오징어의 답이없는 c++익명(39.7) | 16.10.26추천 1
narror말고 wide casting은 보통 허용하는데 그걸 어떻게 판단해서 처리함?
그러니까 하나는 char를 리턴하고 하나는 int를 리턴한다고 했을때 내가 auto b = xxxx()를 하면 뭘 호출해야할까?
위에 narrow임
근데 반대로 좌측에 타입을 명시해준다면 추론 못할것도 없지 않음?
@2016052 : 아니죠. 그럼 아예 wide casting자체도 없어져야하는데
그럼 auto나 void 포인터 같은 걸로 받으면 에러 뿜고? 그건 아니라고 봄
기껏 쓸모없는 리턴값 오버로딩때문에 엄청 많이 발생하는 wide casting을 없애버릴라고요?;;
wide cast가 coercion말하는건가
@닉네임왜궁금한 : 그건 말이 되는게 지금도 타입추론 못하는 상황에는 에러 뿜으니까요..
애초에 c++ 타입이 좀 느슨해서 그렇게 할수 없는거지 타입제약이 좀더 강한언어면 못할것도 없지아늠?
@2016052. 예. 맞아요..
반환할 수 있는 타입의 집합이 있고 그거에 매칭이 한개가 아니면 컴파일 오류내고 이런식이면 될거같은데
대신 coercion을 포기해야겠지만
내로우랑 와이드 중에서 뭐가 업이고 뭐가 다운인가요
생각해보니까 coercion이 일어나는 집합끼리 묶어주는 인터페이스? 그거만 언어에서 제공하면 할수있을거같은데
추상숫자 타입이 있고 세부타입으로 i32 float double 복소수이런식으로 퍼질수만 있으면 추상숫자타입만으로 타입맞추고 이런거 못할것도 없을것같은데
왠지 이미 쓰고있을것같음
int->char narrow char->int wide
@2016052. 음 그런건 내부적으로 원래 하는거 아님? 파이썬3.X의 숫자타입같은건 그렇게 안하면 전부 다 Long이라 오버헤드 쩔듯
생각해보니까 이러면 다형성으로 묶어서 타입 한가지 반환하는거랑 다를게 없는듯
시그니쳐는 같고 반환이 리스트랑 걍 원소 이런식으로 골때리게 갈리면
2016052. 근데 반환값이 그렇게 명확하게 갈릴정도면 작명센스부터 의심해봐야?
근데이것도 함슬람들은 펑터매핑으로 단일타입으로 취급하고 쓰던데..
애초에 걔들은 오버로딩 개념이랑은 다른 걍 패턴 매칭 아닌가?
오버로딩도 시그니쳐보고 매칭하는거라 볼수있어서
근본적으론 같은건데 결국 모든걸 묶는 타입이 있고 그걸 이해하면서 코딩해야한다는 쓸모없는 결론이 제 생각임
구현에 어느정도 의존하는순간 못쓰는 코드가 죄버려서
근데 닝겐의 작명센스 오류일 가능성이 높은 걸 언어에서 제공하는 설탕으로 어떻게 해보려면 그 언어는 엄청나게 복잡하거나 모호한 언어가 될듯;;
그래서 보통 저런성질까지 따지는 언어는 타입이 대수의 성질 따지고 사이드이펙트 들어오면 정신못차림