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

cached picture cached · Mar 22, 2012 · Viewed 10k times · Source

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;
}

Answer

John Zwinck picture John Zwinck · Mar 23, 2012

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.