program should be statically type safe1 [C++ Core Guidelines] P.4 가급적 컴파일 타임 타입을 사용하자 P.4: Ideally, a program should be statically type safe 이유 C++ 는 데이터 타입을 컴파일 시점에 미리 알 수 있는 statically typed language 입니다. 컴파일러가 타입 오류 (형변환 실패, 정밀도 손실 등) 를 미리 감지하도록 가급적 컴파일 타임 타입을 사용하면 프로그램의 안정성을 미리 확보할 수 있습니다. 하지만 안타깝게도 아래와 같은 요소들로 인해 컴파일 타임에 그 타입을 알기 어렵게 만듭니다. 1. unions (공용체, 같은 메모리 공간을 여러 타입으로 취급) 2. casts (단순 형변환) 3. array decay (배열이었으나 단순 포인터로 취급) 4. range errors (메모리 범위를 벗어난 접근) 5. narrowing.. 2024. 4. 7. 이전 1 다음