Variant

    std::variant와 std::monostate 여러가지 타입 중 한 가지의 객체를 보관

    std::variant 는 one-of 를 구현한 클래스라고 보면 된다. 즉, 컴파일 타임에 정해진 여러가지 타입들 중에 한 가지 타입의 객체를 보관할 수 있는 클래스이다. 물론 공용체(union) 을 이용해서 해결할 수 도 있겠지만, 공용체가 현재 어떤 타입의 객체를 보관하고 있는지 알 수 없기 때문에 실제로 사용하기에는 매우 위험하다. // v 는 이제 int std::variant v = 1; // v 는 이제 std::string v = "abc"; // v는 이제 double v = 3.14; 먼저 variant 를 정의할 때 포함하고자 하는 타입들을 명시해줘야 한다. 위의 경우 정의한 variant 는 int, std::string, double 이 셋 중 하나의 타입을 가질 수 있다. var..