Что эквивалентно boost:: variant в стандартной библиотеке С++?
Я ищу альтернативу объединению C-стиля. boost:: variant - один из таких вариантов. Есть что-нибудь в std С++?
union {
int i;
double d;
}
Ответы
Ответ 1
Как говорили несколько комментаторов: Нет, в стандартном С++ нет варианта Boost Variant. Может быть, через несколько лет будет, но зачем ждать - используйте Boost Variant сегодня!
Изменить (четыре года спустя, 2016): В С++ 17 будет std::variant
. Аналогично, но не идентично boost::variant
. Поэтому, когда ваш компилятор поддерживает С++ 17, у вас будет решение в стандартной библиотеке.
Ответ 2
Прошло несколько лет: теперь предложение находится в пути. Возможно, boost::variant
перейдет в С++ 17! До тех пор нам придется жить с boost::variant
, который по-прежнему огромен. Обратите внимание, что в деталях в std::variant
будут внесены некоторые изменения.
ОБНОВЛЕНИЕ: Предложение сделало это. std::variant
будет частью нового стандарта С++ 17. Здесь отчет о собрании в июне 2016 года Херба Саттера. Там он подтверждает это.
Ответ 3
std::variant
теперь официально станет частью стандартной библиотеки С++ 17! https://herbsutter.com/2016/06/30/trip-report-summer-iso-c-standards-meeting-oulu/