반응형

C++ 73

Boost

http://www.boost.org/ 워낙 유명한 라이브러리라 설명이 필요없을 듯... 몇 년전까지 메타프로그래밍에 관심있을 때 좀 찾아보았던 라이브러리 인데 지금은 새로운 C++ 표준에 까지 영향을 주는 최고의 C++ 라이브러리 중 하나가 되었다. 메타프로그래밍이란 것은 Template의 응용으로 많은 문제를 Run-Time 이전에 Compile-Time에서 해결하거나 Generic하게 구현하는데 초점이 맞추어져 있다. 참고로, Boost 주의자 들이 아무리 이 라이브러리 사용이 직접 구현하는 것보다 낫다고 말해도 떄로는 직접 구현하는 것이 나을 떄가 있다. 역사가 반복된다고 했던가? 10년 전에는 직접 구현보다는 MFC를 사용하자, 뭔 라이브러리를 사용하자 했는데 지나치게 프로그래머가 라이브러리에 ..

float, double network ordering, float, double 타입의 네트워크 순서(오더)에 관하여...

float 타입이나 double 타입의 전송은 네트워크 프로그래밍 관련하여 공부한 몇 권의 책에서 나오지 않는 내용이라 열시미 찾아 보았답니다. 우선 float 나 double 타입에 대해서 기본적인 지식을 알아보면 아래와 같이 인터넷에서 찾은 글이 참이나 설명을 잘해주고 있습니다. Floats and doubles tend (in modern chip architectures) to be represented using an IEEE-standard format; so the commonly defined types *are* "float" (single-precision) and "double" (double-precision). These have precise meanings in the stan..

C++ 흔한 실수

개인적으로 겪은 실수에 대한 로그입니다. 매크로 함수의 이름이 클래스 멤버함수와 같은 이름일 경우의 처리 케이스) numeric_limits::max();와 같이 STL을 이용하여 int의 max형을 얻으려고 했는데 warning C4003...와 같은 에러를 얻었다. 이런 현상이 일어난 이유는 max(..)라는 매크로 함수가 에 정의되어 있기 때문이었다. 즉, 매크로가 전처리단계에서 확장된 후에 컴파일이 되기 때문에 흔히 발생하는 문제이다. 해결책은 2가지가 있다. 1. #define NOMINMAX을 포함 전에 정의하는 방법이 있다. 2. (numeric_limits::max)()와 같이 함수코드를 ()로 감싸는 방법이 있다. 결국, 2번 방법을 선택했는데 이렇게 편한 방법이 있는지도 모르고 그동안은..

C++ 프로그래밍 2009.03.23
반응형