C 스타일 유니온의 대안을 찾고 있습니다. boost :: variant는 그러한 옵션 중 하나입니다. std C++에 뭐가 있습니까?C++ 표준 라이브러리에서 boost :: variant에 해당하는 것은 무엇입니까?
답변
몇 명의 의견 작성자는 다음과 같이 말했습니다. 아니요, 표준 C++에는 부스트 변형이 없습니다. 어쩌면 몇 년 안에있을 것이지만, 왜 기다려야할까요? 오늘 Boost Variant를 사용하십시오!
편집 (4 년 뒤 2016 년) : C++ 17에서 std::variant
있을 것입니다. 비슷하지만 동일하지는 않습니다. boost::variant
. 따라서 컴파일러가 C++ 17을 지원하면 표준 라이브러리에 솔루션이 제공됩니다.
이 답변은 어떻게 자격이됩니까? 이것은 의견입니다. –
이 답변은 곧 구식이 될 것입니다. C++ 17에는'std :: variant', http://en.cppreference.com/w/cpp/utility/variant가 포함됩니다. – TimZaman
@TimZaman : 알림을 보내 주셔서 감사합니다. C++ 17 지원에 대한 편집을 추가했습니다. –
몇 년 후 : 이제 a proposal이 (가) 있습니다. 아마도 boost::variant
은 C++ 17로 만들 것입니다! 그때까지 우리는 boost::variant
와 함께 살아야 할 것인데, 그것은 여전히 굉장합니다. 세부 사항의 일부 변경 사항은 std::variant
입니다.
업데이트 : 제안했습니다. std::variant
은 새로운 C++ 17 표준의 일부입니다. 여기에 June 2016 meeting report by Herb Sutter이 있습니다. 거기서 그는 그것을 확인합니다.
이러한 변경 사항을 나열 할 수 있습니까? – einpoklum
변경 사항은 여전히 변경 될 수 있습니다. ;) 몇몇 변화는 논란의 여지가있다. 또한 그것은 표면 위에 있지는 않지만 복잡한 디자인 결정이 있습니다. 불필요하게 대답을 복잡하게 만들지 않기 위해, 나는 간결하고 중요한 시점을 선택했다. 일부 문제는 내 대답에서 제안에 대한 링크에서 찾을 수 있습니다. –
std::variant
은 공식적으로 C++ 17 표준 라이브러리의 일부가 될 것입니다! https://herbsutter.com/2016/06/30/trip-report-summer-iso-c-standards-meeting-oulu/
Boost.Variant는 TR2에있을 가능성이 매우 높습니다. – ildjarn
슬프게도, 대부분의 부스트는 아직'std' 동등 물이 없습니다. –
부스트 사용에 문제가 없습니다. C++의 요점은 유용한 일을하는 라이브러리를 작성할 수 있다는 것입니다. 모든 것을 상자에서 제공하지는 않지만 오히려 필요한 모든 것을 만들 수있는 도구를 제공합니다. 부스트를 사용하십시오. –