C++ variant, 상속 없이 다형성 흉내 내기 (실무 후기)
지난번 std::optional에 이어, 오늘은 C++17의 또 다른 강력한 무기인 std::variant에 대해 이야기해 보려고 한다. optional이 '값이 있거나 없거나'의 두 가지 상태를 다뤘다면, variant는 한 걸음 더 나아가 여러 가지 정해진 타입 중 하나가 될 수 있는 상태를 우아하게 처리한다.예전엔 우리 어떻게 했더라? (feat. 공용체와 보이드 포인터)하나의 변수가 여러 타입 중 하나를 가져야 하는 상황. 생각보다 흔하다. 네트워크 메시지는 '인증 요청'일 수도, '데이터 전송'일 수도 있다. UI 이벤트는 '마우스 클릭'일 수도, '키보드 입력'일 수도 있다. 이런 걸 처리하기 위해 예전에는 보통 이런 방법을 썼다.union과 enum의 조합: C 스타일의 전통적인 방식. un..