블로그
-
C++20 Concepts: SFINAE를 대체하는 제약 문법과 Subsumption
난해한 템플릿 에러 메시지를 C++20 Concepts로 바꾸는 방법을 enable_if 코드와 나란히 비교합니다. requires 절과 requires 표현식, 표준 concept 계층, subsumption으로 오버로드 우선순위가 정해지는 원리와 흔한 제약 에러도 다룹니다.
-
C++ 커스텀 Concepts 작성 | 도메인에 맞는 제약 조건 정의하기 [#22-2]
표준 concept만으로는 원하는 타입만 받기 어려울 때 Serializable, Hashable 같은 도메인 concept를 직접 정의하는 방법을 다룹니다. requires 표현식의 반환 타입·noexcept 검사, &&와 || 조합, ADL과 swap 문제, 순환 정의 같은 흔한 오류도 설명합니다.
-
C++20 코루틴 기초: co_await·co_yield와 Generator 구현
값을 하나씩 만들어 주는 제너레이터와 콜백 없이 쓰는 비동기 Task를 C++20 코루틴으로 직접 구현합니다. co_yield·co_await·co_return의 동작, promise_type 필수 메서드, coroutine_handle 수명 규칙과 dangling 참조 같은 실수를 짚습니다.
-
C++ Generator로 지연 시퀀스 만들기: co_yield, 무한 수열, filter·map·take 파이프라인
C++20 코루틴으로 Generator를 구현하는 방법. co_yield와 promise_type, 지연 평가와 무한 시퀀스, filter·map·take 조합, 수명(dangling) 오류, vector 대비 성능, 파일 스트리밍 예제를 다룹니다.
-
C++ 비동기 작업과 Coroutine | co_await로 콜백 지옥 탈출하기 [#23-3]
C++20 코루틴으로 비동기 작업을 co_await하는 방법을 다룹니다. Awaitable 프로토콜, 대칭 전송을 쓰는 Task 타입 구현, Boost.Asio awaitable 연동, 에러 처리, 수명 관리, 타임아웃·병렬 요청·취소 패턴을 설명합니다.
-
C++20 Modules: import·export 문법, 컴파일러 지원 현황, 빌드 시간
include가 쌓여 컴파일이 느려지는 문제를 C++20 모듈로 푸는 기본기를 다룹니다. export module과 import 문법, 전역 모듈 fragment로 기존 헤더 쓰기, 파티션 구성, GCC·Clang·MSVC·CMake 빌드 설정과 module not found 에러 대처를 설명합니다.
-
C++ 기존 프로젝트를 Module로 전환 | 단계별 마이그레이션 [#24-2]
헤더 기반 프로젝트를 한 번에 갈아엎지 않고 의존성이 적은 유틸부터 모듈로 옮기는 전환 절차를 보여줍니다. include와 import 공존, export 범위 결정, 인터페이스·구현 유닛 분리, MSVC .ixx를 포함한 CMake 설정과 증분 빌드 효과를 다룹니다.
-
C++20 Ranges: views 파이프라인, projection, 성능 특성
begin/end를 반복해 넘기고 람다로 멤버를 비교하던 STL 코드를 std::ranges 알고리즘과 프로젝션으로 줄이는 방법을 보여줍니다. filter·transform·take로 view 파이프라인을 만들고 벡터로 구체화하는 법, range concept 요구 사항, view 수명 함정도 다룹니다.
-
C++ Ranges Views와 파이프라인 | 지연 연산으로 효율적으로 다루기 [#25-2]
중간 벡터를 여러 개 만드는 루프 코드를 C++20 Ranges view 파이프라인(filter·transform·take·split·join)으로 바꾸고, 지연 평가가 동작하는 방식과 dangling view·조건부 파이프라인 타입 같은 함정을 정리합니다.
-
C++ 커스텀 Range 작성 | range 개념을 만족하는 타입 만들기 [#25-3]
직접 만든 컨테이너나 래퍼를 범위 기반 for와 std::ranges 알고리즘에 그대로 넣으려면 무엇이 필요한지 정리합니다. 반복자 요구 사항, random_access 반복자, sentinel, 직접 만드는 filter 어댑터, 수명 문제를 C++20 기준 예제로 다룹니다.