본문 바로가기

기타 정리2

boost의 static_gcd / static_lcm 흉내내기 Intro TMP로 유클리드 호제법을 구현해서 최대공약수와 최소공배수를 컴파일 타임에 얻어보자. #include using namespace std; template struct StaticGreatestCommonDivisor { enum { kValue = StaticGreatestCommonDivisor::kValue }; }; template struct StaticGreatestCommonDivisor { enum { kValue = A }; }; template struct StaticLeastCommonMultiplier { private: static const size_t kGCD = StaticGreatestCommonDivisor::kValue; static const size_t k.. 2015. 10. 28.
CallStack을 찍어보자. Intro 커스텀 메모리 관리자에서는 일반적으로 디버깅을 용이하게 하기 위해 메모리 할당이 일어난 위치 정보를 메모리 헤더에 기록한다. 이는 예전 강좌 정리글에서도 한번 다뤘었다. 이러한 위치 정보 기록은 메모리 관련 뿐만 아니라 여러 곳에서 유용하게 쓰일 수 있다. 그런데 어떤 상황에서는 단순히 그 상황이 일어난 위치정보만으로는 문제 해결이 어려울 수 있다. 특히 문제가 되는 지점으로 진입할 수 있는 경로가 여러 개일 경우는 이것이 어떤 경로에서 발생한 문제인지 확인하기가 힘들다. 이때 만약 문제 시점의 콜스택을 확인할 수 있다면 이는 골치아픈 디버깅을 하는데 있어서 큰 도움이 될 것이다. Windows 프로그래밍에서는 이를 가능하게 하는 함수들을 제공하고 있는데, 이를 사용해서 콜 스택을 찍어보도록 .. 2015. 8. 7.