Optimization 2

[C++ Study] Side Effect, Android Vulkan, 그리고 현대적 상수(const/constexpr/consteval)

1. 사이드 이펙트 (Side Effect)함수가 자신의 반환값 외에 외부의 상태를 변경하거나 관찰 가능한 변화를 일으키는 행위입니다.📋 주요 사이드 이펙트의 예시외부 변수 수정: 전역 변수나 멤버 변수 값을 변경하는 경우I/O 작업: 로그 출력(printf, UE_LOG)이나 파일 저장객체 상태 변경: 인자로 받은 객체의 내부 값을 수정예외 발생: 프로그램의 실행 흐름을 갑작스럽게 중단💡 왜 사이드 이펙트를 경계해야 하는가?디버깅의 난해함: 상태를 읽기만 할 것 같은 함수(Get...)가 내부에서 상태를 바꾸고 있다면 버그 추적이 매우 힘듭니다.멀티스레드 위험: 여러 스레드가 동시에 외부 변수를 건드리는 경합 조건(Race Condition)을 유발합니다.최적화 제한: 컴파일러는 사이드 이펙트가 없..

C++ 공부 2026.04.09

[C++ Study] 열거형, 복사 생성자, 그리고 메모리 관리 전략

1. enum vs enum class (Scoped Enum)현대 C++(C++11 이상) 및 언리얼 엔진 환경에서 enum class 사용은 선택이 아닌 필수입니다.📋 주요 차이점 비교구분enum (Unscoped)enum class (Scoped)유효 범위전역(Global) 범위에 노출됨클래스 범위 내로 제한됨타입 안전성정수형(int)과 암시적 변환 가능암시적 변환 불가 (명시적 캐스팅 필요)이름 충돌다른 enum과 이름 중복 불가이름 중복 가능 (Scope로 구분)메모리 지정컴파일러가 결정 (불투명함)Underlying Type(uint8 등) 지정 가능💡 지식의 확장: 왜 enum class인가?타입 안정성: 실수로 열거형 값을 정수 함수 인자에 넣는 치명적 버그를 컴파일 타임에 차단합니다...

C++ 공부 2026.04.08