태그: variant
3편
-
C++ std::variant vs union: 타입 안전성과 비용 비교
C++ union이 활성 멤버를 추적하지 않아 생기는 문제와 std::variant가 이를 해결하는 방식을 비교하고, std::visit와 overloaded 패턴으로 타입별 처리를 작성하는 방법, JSON 값·AST 노드·에러 처리 예제를 다룹니다.
-
C++ Visitor 패턴: 더블 디스패치와 std::variant + std::visit 비교
C++ Visitor 패턴을 더블 디스패치와 std::variant + std::visit 두 가지 방식으로 비교합니다. AST 순회, 상태 머신, overloaded 람다 헬퍼 등 실전 예제와 함정을 다룹니다.
-
C++ union과 std::variant: 공용체의 타입 안전성 문제와 variant로 바꾸기
C++ union의 메모리 겹침 구조와 그 타입 안전성 문제를 std::variant(C++17)가 어떻게 해결하는지 JSON 값, 상태 머신, Result 타입 예제로 정리합니다. get_if, holds_alternative, 태그 붙은 union 함정까지 다룹니다.