블로그
-
C++ auto와 decltype: 타입 추론 규칙, decltype(auto), AAA 스타일
auto가 const와 참조를 떼어내는 규칙, auto&&와 전달 참조, 중괄호 초기화 추론처럼 헷갈리는 타입 추론 규칙을 예제로 확인합니다. decltype이 변수 이름과 표현식에서 다르게 동작하는 이유, decltype(auto)로 참조 반환을 보존하는 법과 AAA 스타일도 다룹니다.
-
C++ 범위 기반 for문과 구조화된 바인딩 | 모던 C++ 반복문
C++11 범위 기반 for와 C++17 구조화된 바인딩 사용법. auto·auto&·const auto&·auto&& 선택, map 순회, 임시 객체 수명(메서드 체인은 C++20까지 위험), vector<bool> 프록시, 커스텀 타입의 begin/end, 순회 중 수정 금지와 실전 패턴을 예제로 정리합니다.
-
C++17 optional·variant·any: nullptr 체크 대신 타입으로 표현하기
값이 없을 수 있는 결과는 nullptr 대신 std::optional로, 여러 타입 중 하나는 std::variant와 std::visit으로, 임의 타입은 std::any로 표현하는 방법을 비교합니다. 빈 optional 접근, 잘못된 get·any_cast 같은 흔한 실수도 짚습니다.
-
const·noexcept·[[nodiscard]]로 C++ 인터페이스 의도 명확히 하기
const 없이 넘긴 설정이 어딘가에서 바뀌거나 init() 실패를 무시하는 문제를 const correctness, noexcept, [[nodiscard]]로 막는 방법을 다룹니다. mutable의 쓰임, 이동 생성자에 noexcept가 없을 때 vector가 복사를 고르는 이유도 설명합니다.
-
C++ 인터페이스 설계와 PIMPL: 컴파일 의존성을 끊고 바이너리 호환성(ABI) 유지하기
private 멤버 하나만 바꿨는데 전체가 다시 빌드되는 문제를 PIMPL로 막는 방법을 설명합니다. 헤더 의존성이 재컴파일 범위를 넓히는 원리, Rule of Five 처리, incomplete type 에러, 이동 후 상태, PIMPL의 비용과 대안(전방 선언, Fast PIMPL)을 다룹니다.
-
루프가 병목일 때: 자동 벡터화, std::execution 병렬 정책, SSE·AVX2·AVX-512 인트린직
C++ SIMD와 병렬 알고리즘 정리. 루프 병목에서 출발해 std::execution 정책, 자동 벡터화 조건, SSE·AVX2·AVX-512 인트린직 사용법, 자주 나는 에러와 성능 벤치마크를 다룹니다.
-
C++ 패키지 관리 실무: vcpkg와 Conan으로 외부 라이브러리 의존성 지옥 탈출
헤더 하나 쓰려다 경로 설정에 막히는 의존성 문제를 vcpkg와 Conan으로 푸는 실무 방법을 다룹니다. vcpkg 오버레이 포트와 버전 제약, Conan 프로필·옵션·lockfile을 설명하고 CI, 멀티 플랫폼, 사내 저장소, Docker 환경에서 쓰는 패턴을 비교합니다.
-
Docker DevContainer로 C++ 빌드 환경 통일하기
C++ 빌드 환경을 Docker 이미지로 고정하는 방법입니다. 멀티 스테이지 빌드, vcpkg/Conan 의존성 캐시, VS Code Dev Container 설정, ccache·BuildKit 캐시, 컨테이너 안 GDB 디버깅과 자주 나는 런타임 에러를 다룹니다.
-
C++ stringstream | 문자열 파싱·변환·포맷팅
“123abc”를 int로 바꾸다 실패하는 문제에서 시작해 istringstream으로 공백·CSV 데이터를 안전하게 파싱하고 ostringstream으로 문자열을 조립하는 법을 다룹니다. 매니퓰레이터 상태가 다음 출력에 남는 함정, 스트림 재사용 문제, C++20 std::format과의 비교도 포함합니다.
-
C++ 현대적인 GUI: Dear ImGui로 디버깅 툴·대시보드 만들기
콘솔 출력만 보던 프로그램에 Dear ImGui로 디버깅 창을 띄우는 방법을 즉시 모드 개념부터 설명하고, GLFW + OpenGL 백엔드 연동과 CMake 빌드를 전체 예제로 보여줍니다. 모니터링 대시보드와 Begin/End 불일치, 한글 깨짐 문제도 다룹니다.