점프 목적 분류
오류 정리, 중첩 루프 탈출, 상태 머신 전이 중 무엇을 표현하려는지 먼저 나눕니다.
C++의 goto는 같은 함수 안 label로만 이동하고, 초기화된 지역 변수의 스코프 안으로 뛰어드는 코드는 컴파일러가 막는다. 정리 목적 점프는 RAII, 중첩 탈출은 함수 return, 상태 전이는 switch로 바꾸는 편이 안전하다.
오류 정리, 중첩 루프 탈출, 상태 머신 전이 중 무엇을 표현하려는지 먼저 나눕니다.
루프 검색이나 검증 로직을 함수로 빼면 flag 변수와 goto label 없이 결과를 반환할 수 있습니다.
정리 목적 goto는 unique_ptr, vector, lock_guard처럼 소멸자가 해제하는 타입으로 사라지는 경우가 많습니다.
bool contains(const Grid& grid, int target) {
for (const auto& row : grid)
for (int value : row)
if (value == target) return true;
return false;
}