Подтвердить что ты не робот

Что эквивалентно boost:: variant в стандартной библиотеке С++?

Я ищу альтернативу объединению C-стиля. boost:: variant - один из таких вариантов. Есть что-нибудь в std С++?

union {
   int i;
   double d;
}
4b9b3361

Ответ 1

Как говорили несколько комментаторов: Нет, в стандартном С++ нет варианта Boost Variant. Может быть, через несколько лет будет, но зачем ждать - используйте Boost Variant сегодня!


Изменить (четыре года спустя, 2016): В С++ 17 будет std::variant. Аналогично, но не идентично boost::variant. Поэтому, когда ваш компилятор поддерживает С++ 17, у вас будет решение в стандартной библиотеке.

Ответ 2

Прошло несколько лет: теперь предложение находится в пути. Возможно, boost::variant перейдет в С++ 17! До тех пор нам придется жить с boost::variant, который по-прежнему огромен. Обратите внимание, что в деталях в std::variant будут внесены некоторые изменения.

ОБНОВЛЕНИЕ: Предложение сделало это. std::variant будет частью нового стандарта С++ 17. Здесь отчет о собрании в июне 2016 года Херба Саттера. Там он подтверждает это.