Boost logo

Boost :

Subject: Re: [boost] [any] Multimethod for boost::any and modified boost::any to fit multi method
From: Nowake (nowake_at_[hidden])
Date: 2009-02-16 10:15:04

> I update Multimethod that use boost::unorderd_map.
> Currently, Multimethod dispatches method in constant-time.

I made a mistake.
I didn't know that std::type_info instance is not unique in a program.

I had to change boost::any::type and boost::any::holder::type like this;
template<typename ValueType>
static const std::type_info& any::typeinfo()
    static const std::type_info& r(typeid(ValueType));
    return r;

const std::type_info & any::type() const
    return content ? content->type() : typeinfo<void>();
    //return content ? content->type() : typeid(void);

template<typename ValueType>
virtual const std::type_info&
boost::any::holder<ValueType>::type() const
    return typeinfo<ValueType>();
    //return typeid(ValueType);

It's necessary to change boost::any to implement multimethod
dispatching in constant-time.


Boost list run by bdawes at, gregod at, cpdaniel at, john at