What is the equivalent of boost::variant in the C++ standard library?

三世轮回 提交于 2019-12-19 05:14:17

问题


I am looking for an alternative to C-style union. boost::variant is one such option. Is there anything in std C++ ?

union {
   int i;
   double d;
}

回答1:


As several commenters said: No, there is no Boost Variant-alike in standard C++. Maybe in a few years there will be, but why wait--use Boost Variant today!


Edit (four years later, 2016): In C++17 there will be std::variant. Similar but not identical to boost::variant. So when your compiler supports C++17, you will have a solution in the standard library.




回答2:


A few years passed: Now a proposal is on the way. Possibly boost::variant will make it into C++17! Until then we will have to live with boost::variant which is still awesome. Note that there will be some changes in the details in std::variant.

UPDATE: The proposal made it. std::variant will be part of the new C++17 standard. Here's the June 2016 meeting report by Herb Sutter. There he confirms it.




回答3:


std::variant is now officially going to be a part of the C++17 standard library! https://herbsutter.com/2016/06/30/trip-report-summer-iso-c-standards-meeting-oulu/



来源:https://stackoverflow.com/questions/9831218/what-is-the-equivalent-of-boostvariant-in-the-c-standard-library

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!