Много ли файлов тащит использование boost::any? Просто, такая версия класса Variant не работает. Не хочет преобразовывать к типу.
/// Класс для перевода в любой тип данных
class Variant
{
public:
template <typename T>
Variant& operator=(T const& t)
{
typedef type<T> assign_type;
object = std::auto_ptr<assign_type>(new assign_type(t));
return *this;
}
template <typename T>
operator T()
{
typedef type<T> assign_type;
assign_type& type = dynamic_cast<assign_type&>(*object);
return type.get();
}
private:
class base
{
public:
virtual ~base() {}
};
typedef std::auto_ptr<base> base_ptr;
template <typename T>
class type: public base
{
public:
type(T const& t): object(t) {}
T get() const { return object; }
private:
T object;
};
base_ptr object;
};
http://www.boost.org/doc/libs/1_53_0/tools/bcp/doc/html/index.html
boost::any сам по себе не требует ничего, кроме заголовочников.
это чисто темплейты и функции, объявленные прямо в заголовочниках.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)