블로그
-
C++ 함수 처음 만들기: 선언과 정의, 값·참조 전달, 오버로딩, 기본 인자 (예제 10개)
함수를 처음 만들 때 필요한 선언과 정의의 분리, 값·참조·포인터 전달의 차이, return 규칙, 기본 매개변수, 오버로딩을 예제 10개로 익힙니다. 지역 변수 주소 반환, 오버로딩 모호성, 선언 전 호출 같은 초보자 실수도 짚습니다.
-
C++ 반복문: for/while/do-while과 무한 루프·off-by-one 실수 피하기
for, while, do-while을 어떤 상황에 고르는지, 범위 기반 for의 동작, off-by-one과 세미콜론으로 생기는 무한 루프, 중첩 루프를 플래그·함수 분리·goto로 빠져나오는 방법을 구구단·소수 판별 예제로 익힐 수 있습니다.
-
C++20 std::views: filter·transform·take 지연 평가와 ranges::to로 구체화하기
C++20 std::views의 filter, transform, take, drop을 파이프로 연결하면 중간 컨테이너 없이 지연 평가되는 원리를 설명합니다. 뷰가 원본을 소유하지 않아 생기는 댕글링, 재평가와 캐싱 문제, ranges::to로 결과를 컨테이너로 만드는 방법을 다룹니다.
-
C++ Visitor 패턴: 더블 디스패치와 std::variant + std::visit 비교
C++ Visitor 패턴을 더블 디스패치와 std::variant + std::visit 두 가지 방식으로 비교합니다. AST 순회, 상태 머신, overloaded 람다 헬퍼 등 실전 예제와 함정을 다룹니다.
-
C++와 Python 중 무엇을 먼저 배울까: 속도, 학습 난이도, 취업 시장 비교
첫 언어로 C++와 Python 중 무엇을 고를지 실행 속도, 학습 곡선, 쓰이는 분야와 취업 시장을 기준으로 비교합니다. 같은 작업을 두 언어로 작성한 코드, 피보나치 계산 벤치마크, 게임·시스템 개발과 데이터 분석 등 목표별 추천 경로를 담았습니다.
-
C++ Asio post, dispatch, defer | 실행 큐 정밀 제어 [#4]
Asio의 post는 항상 큐 뒤에 넣고, dispatch는 이미 해당 executor 안이면 즉시 실행하며, defer는 다음 턴으로 미룬다는 차이를 코드로 비교하고, 채팅 서버와 타이머·Strand 예제에서 어떤 것을 골라야 하는지 결정 기준을 제시합니다.
-
std::pmr로 메모리 할당 최적화하기 | Polymorphic Memory Resource 활용법
C++17 std::pmr의 polymorphic_allocator, monotonic_buffer_resource, pool_resource를 언제 어떻게 쓰는지, 수명·복사 시 리소스 선택·정렬 함정과 커스텀 memory_resource 구현, 측정할 때 주의할 점까지 실전 예제로 정리합니다.
-
C++ = default와 = delete: 특수 멤버 함수 제어와 복사 금지·이동 전용 타입
C++11 = default와 = delete로 특수 멤버 함수를 명시적으로 제어하는 방법을 설명합니다. 복사는 막고 이동만 허용하는 리소스 래퍼, 힙 할당 금지, 특정 타입 변환 차단, 싱글톤 예제와 Rule of Zero를 다룹니다.
-
C++ use-after-free: 해제 후 사용이 생기는 패턴과 ASan·gdb로 추적하기
delete 후 포인터 사용, 지역 변수를 가리키는 참조 반환, 벡터 재할당으로 무효화된 반복자, 람다가 캡처한 소멸된 객체처럼 Use After Free가 생기는 패턴을 예제로 보여줍니다. ASan과 gdb로 추적하는 법과 스마트 포인터로 막는 법도 다룹니다.
-
C++ 사용자 정의 리터럴: 리터럴 연산자 문법, cooked·raw 오버로드, 접미사 규칙
C++11 사용자 정의 리터럴(operator"") 문법과 언더스코어 접두사 규칙, cooked·raw 오버로드 선택 기준, chrono 리터럴 합성 원리, 접미사 충돌 함정을 실전 코드로 정리합니다.