Variant представляет собой безопасный стековый контейнер, хранящий
единственное значение, предлагающий простое решение для манипулирования
наборами неоднородных данных в единой манере. Разработан Эриком Фридманом.
Описание:
| Конструктор | |
|---|---|
|
template | Создаёт новый экземпляр объекта variant |
|
template | Копирующий конструктор |
|
template template variant(const T & operand); | Создаёт новый экземпляр объекта variant, хранящий экземпляр operand |
|
template template variant(const variant & operand); | Создаёт новый экземпляр объекта variant, хранящий экземпляр operand |
| ~variant(); | Деструктор |
| Модификаторы variant | |
| void swap(variant & other); | Обмен элементами между двумя объектами типа variant |
| variant & operator=(const variant & rhs); | Присваивает экземпляру типа variant значение другого variant |
|
template | Присваивает экземпляру типа variant значение другого объекта любого типа |
| Прочие функции | |
| int which() const; |
Возвращает начинающийся с нуля индекс типа содержащегося в variant. (Например для экземпляра variant |
| bool empty() const; | Возвращает false - variant всегда содержит какое-либо значение. Служит для совместимости с boost::any |
| const std::type_info & type() const; | Возвращает typeid(x), где x - тип значения, хранящегося в variant |
| Операторы сравнения для variant | |
| bool operator==(const variant & rhs)const; | |
|
template | |
| bool operator<(const variant & rhs)const; | |
|
template | |
библиотека BOOST C++
http://www.boost.org
с разрешения автора: перевод
Сова Анатолий Романович
http://www.aproxim.narod.ru