예외
C/C++ 전처리기의 모든 것 (예외, 매크로, 토큰)
전처리기 컴파일러는 사용자가 작성한 코드를 컴파일하기 전에 전처리문에서 정의해 놓은 작업들을 먼저 수행한다. 첫 문자는 항상 ‘#’으로 시작한다. ANSI 표준에 따른 C의 전처리문의 종류가 아래에 나와 있다. 파일 처리를 위한 전처리문 : #include 형태 정의를 위한 전처리문: #define, #undef 조건 처리를 위한 전처리문: #if, #ifdef, #ifndef, #else, #elif, #endif 에러 처리를 위한 전처리문: #error 디버깅을 위한 전처리문: #line 컴파일 옵션 처리를 위한 전처리문: #pragma #include 꺽쇠 괄호 솔루션 파일이 위치한 폴더가 아닌 타 폴더에 있을 시, 쌍 따옴표는 " " 같은 폴더에 있을 시 // 타 폴더 #include #inclu..
C++ 예외 처리용 throw(), noexcept()
throw(typeid, typeid, ...) throw 한정자는 함수가 예외로 던질 수 있는 typeid의 목록을 인자로 받는다. typeid에 해당하는 타입이 클래스나 구조체라면, 상속받는 자식도 역시 예외를 던질 수 있는 타입으로 간주한다. // 아무 타입도 지정하지 않았으므로, 예외를 던지지 않는다. void no_except() throw(); // 모든 타입에 대해 예외를 던진다 void bar() throw(...) {}; // C++11부터 추가된 parameter pack, 즉 C++11 이전엔 이 형태가 불가능 void baz() {}; class X {}; class Y {}; class Z : public X {}; class W {}; // 함수 f는 X와 Y, 그리고 그들의 자..