목록C++ (11)
Pure Software Engineer :)
프로그램 실행중에 특정 값이나 조건이 성립하는지 확인하기 위해 ASSERT 매크로를 사용한다. 조건이 실패하게 되면 abort 같은 것을 통해 실행중인 프로그램이 즉시 종료하게 된다. (무조건 abort()가 아니라 컴파일러마다 다른 방법으로 종료하는지는 확실하지 않다. 확인이 필요함) 하지만 프로그램 실행중이 아니라, 컴파일 타임에 특정 조건이 성립하는지 확인할 수 있다면 미리 검사하는 것이 더 좋을 것이다. 이러한 방법을 compile time assertion 또는 static assertion 이라고 부른다. boost 라이브러리나, C++0x 에서부터는 static_assert 를 통해 지원하는 것 같지만, 이를 사용하지 않고도 다음과 같이 간단한 매크로를 정의하여 쉽게 사용할 수 있다. Col..
먼저 본 항목에 들어가기 앞서, C++은 자바와 닷넷과는 다르게 메모리를 직접 관리해야 한다. 수동으로!! 하지만 반대로 생각해보면 개발자가 메모리를 잘(?) 컨트롤 할수만 있다면, 가비지 컬렉터를 통해 메모리 관리에 신경쓰지 않아도 되는 언어와 달리 성능(시간, 공간) 향상을 누릴 수가 있다. C++의 메모리를 직접 관리하기 위해서는 C++에서 메모리 관리 루틴이 어떻게 동작하는지를 잘 알아둘 필요가 있으며, 그에 대한 내용을 이번항목에서 설명하고 있다. [항목49] new 처리자의 동작 원리를 제대로 이해하자 C++에서는 흔히 operator new 연산자를 통해 메모리 할당을 요청한다. 하지만 메모리 할당에 실패하였을 경우에는? 1 2 3 4 5 6 7 8 9 10 11 12 #include #in..
스콧 마이어스의 Effective C++ 3판을 읽으면서 조금씩 정리를 해 보고자 한다. 책은 대학교때 구입했던거같은데...벌써 한 4~5년은 된것 같다 ㅠㅠ 최근 책을 읽어보다가 C++ 에 대해 지금까지 전혀 예상치 못하고 넘어갔던 재미있는것들도 많이 보여 충격을 받았다. 책의 특성상 특별히 순서에 관계없이 읽어도 되므로...블로그 정리도 재미있었던 부분(?) 부터 조금씩 정리하겠다고 마음먹었다. 언제가 될지 모르지만 책에 있는 모든 항목들을 정리할 수 있는 그날까지 열심히 해보자.!!!!