#2. [레거시 C++ 가이드] 예외 메카니즘(try-catch, throw와 스택 풀기, terminate)
해결할 수 없는 예외 상황은 오류 코드 리턴보다는 강제성이 있는 throw로 보고하라. 예외를 해결할 수 있는 곳에서 탐지하라. catch()에서 예외 개체가 복사 생성되지 않도록 참조자로 받아라. 예외를 그대로 전파할 경우에는 throw;를 사...
해결할 수 없는 예외 상황은 오류 코드 리턴보다는 강제성이 있는 throw로 보고하라. 예외를 해결할 수 있는 곳에서 탐지하라. catch()에서 예외 개체가 복사 생성되지 않도록 참조자로 받아라. 예외를 그대로 전파할 경우에는 throw;를 사...
예외 안전(safe) 코드는 예외가 발생하지 않는 코드가 아니라, 예외가 발생해도 안전하게 복원되고 계속 동작해도 무방하게 예외 보증하는 코드다. 예외 상황을 사전에 예측하고 프로그래밍 하라. 모든 함수는 실패할 수 있다고 가정하고 프로그래밍 해라. ...
모던 C++ (C++11~) constexpr이 추가되어 컴파일 타임 프로그래밍이 강화됐습니다. (C++11~) static_assert()가 추가되어 컴파일 타임 진단이 가능해 졌습니다. (C++11~) noexcept 연산자가 추가되어 해당 함수...
auto_ptr은 deprecate 되었으니 더이상 사용하지 마라. 복사 부하, 상수성, 스마트 포인터를 이용하여 좀더 단단한 코딩 계약을 만들어라.
string과 wstring은 public Non-Virtual 소멸자이므로 상속하여 재구현 하지 마라. 수정될 필요가 없는 문자열 데이터는 const char* 나 const wchar_t*로 관리하라.(배열이나 string, wstring을 쓰면 복제된다....