실무 C++ 코드를 작성하다 보면 하나의 값이 여러 상태 중 하나를 표현해야 할 때가 많습니다.예를 들어 API 응답은 성공일 수도 있고, 재시도 요청일 수도 있고, 실패일 수도 있습니다.이런 상황을 enum과 별도 struct 조합으로 표현할 수도 있지만, 값과 상태가 분리되면 잘못된 조합이 생기기 쉽습니다.C++17의 std::variant는 이런 문제를 type-safe하게 표현하기 위한 도구입니다. std::variant의 핵심은 여러 타입 중 정확히 하나만 활성 상태로 들고 있다는 점입니다. std::visit은 그 활성 타입에 맞는 처리 코드를 안전하게 연결해줍니다. 이번 글에서는 std::variant가 enum, union, inheritance와 어떤 점에서 다른지, std::visit을..