Boost C++: библиотека Variant

Variant представляет собой безопасный стековый контейнер, хранящий единственное значение, предлагающий простое решение для манипулирования наборами неоднородных данных в единой манере. Разработан Эриком Фридманом.

Описание:

Конструктор
template variant(); Создаёт новый экземпляр объекта variant
template variant(const variant & other); Копирующий конструктор
template variant(T & operand);
template variant(const T & operand);
Создаёт новый экземпляр объекта variant, хранящий экземпляр operand
template variant(variant & operand);
template variant(const variant & operand);
Создаёт новый экземпляр объекта variant, хранящий экземпляр operand
~variant(); Деструктор
Модификаторы variant
void swap(variant & other); Обмен элементами между двумя объектами типа variant
variant & operator=(const variant & rhs); Присваивает экземпляру типа variant значение другого variant
template variant & operator=(const T & rhs); Присваивает экземпляру типа variant значение другого объекта любого типа
Прочие функции
int which() const; Возвращает начинающийся с нуля индекс типа содержащегося в variant. (Например для экземпляра variant если содержится значение типа std::string, which() вернёт 1)
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 void operator==(const U & ) const;
bool operator<(const variant & rhs)const;
template void operator<(const U & ) const;

 

библиотека BOOST C++ http://www.boost.org
с разрешения автора: перевод Сова Анатолий Романович http://www.aproxim.narod.ru

  © Mental Computing 2010