Closed GoogleCodeExporter closed 9 years ago
제가 추가한 이유는 약간 다른데요, size_t -> DWORD(unsigned long)
으로 변환하는 것 때문
입니다.
x64에서는 uint64 -> uint32 변환 이라서 문제가 되지 않지만
x86에서는 uint32 -> uint32 인
데, 타입자체가 달라서 (typedef로 다르게 정의한 것과는
다른) 기존 코드가 동작하지 않았습
니다. 이런 경우에는 static_cast로 해결이 안되니까
numeric_cast를 사용할 수 밖에 없거든
요. 그러다 보니 재훈씨가 의도하지 않았던 게
발생한거네요... 거기까진 생각 못했네요
Original comment by gwkan...@gmail.com
on 22 Sep 2009 at 4:15
흠.. x86 에선 static_cast를 x64 에선 numeric_cast 를 사용해도 되긴
하겠네요..
Original comment by gwkan...@gmail.com
on 22 Sep 2009 at 4:17
근데,, 다시 보니 두번째 삽질이었던것 같은 ㅡㅡ;;;
Original comment by gwkan...@gmail.com
on 22 Sep 2009 at 4:28
http://code.google.com/p/earlgrey/source/detail?r=245
업뎃했습니다.
Original comment by gwkan...@gmail.com
on 22 Sep 2009 at 4:39
재훈씨가 예로 보여준 코드에 대한 문제는 결정을 해야 할
것 같아서 issue 다시 열었습니다.
Original comment by gwkan...@gmail.com
on 22 Sep 2009 at 4:41
boost쪽을 봐도 numeric_cast는 static_cast를 쓰면 안전하지 않은
캐스팅을 감지하지 못하기 때문에
만든 거네요. 그러니까 제 처음 의도가 맞나 보네요. 음...
원래 boost의 numeric_cast를 이식하려다 실
패해서 이런 형태가 된 거니까 당연한 걸지도 ^^
문제가 되는 경우를 boost에서 어떻게 처리하는지 한번
살펴봐야겠네요.
Original comment by kaistizen
on 22 Sep 2009 at 4:50
지금보니 r239 에서 제가 수정한 코드도 unsigned int를 int로
변환 못하는 건 마찬가지네요.
그 코드가 sign 값도 같고 size도 같을 경우에만 static_cast하는
거거든요..
Original comment by gwkan...@gmail.com
on 23 Sep 2009 at 2:33
[deleted comment]
부호가 같고 size 가 같다는 건.... 이 코드가 현재 정수만
다루기 때문에 약간 문제가 있을지 모르는데
요. 실수형과 정수형을 상호 변환할 때 어떤 문제가 있지
않을까요?
Original comment by kaistizen
on 23 Sep 2009 at 2:04
그렇겠네요.. 지금은 코드 수정했으니 그 문제는
없을거예요.
Original comment by gwkan...@gmail.com
on 23 Sep 2009 at 6:40
순전히 boost의 numeric_cast 에 의존하기로 합니다.
EARLGREY_NUMERIC_CAST 매크로를 이용하는데, boost 가 없을 땐
static_cast 로 대체합니다.
Original comment by plaint...@andromedarabbit.net
on 7 Oct 2011 at 7:59
Original issue reported on code.google.com by
kaistizen
on 22 Sep 2009 at 3:46