[boost::any] Using any as an abstract class container
Let's say i have a hierarchy of object that all inherits from a abse class
called base_impl.
Among those classes, most of them are tempalte that
have large, complex type.
My idea was to use boost::any to
store any of this classes' instances, any_cast them back to base_impl* and
call one of the base_impl virtual method.
Basically I did this
:
struct expression_impl
{
virtual ~expression_impl() {}
virtual void evaluate() const = 0;
};
struct
expression
{
template<class T>
expression( T const& x ) : mExpr(x) {}
void evaluate() {
boost::any_cast
AMDG joel falcou wrote:
Let's say i have a hierarchy of object that all inherits from a abse class called base_impl. Among those classes, most of them are tempalte that have large, complex type.
My idea was to use boost::any to store any of this classes' instances, any_cast them back to base_impl* and call one of the base_impl virtual method.
Why can't you return shared_ptr
I can't rely on stroing a pointer in the boost::any member. Any solution to this problem or am I doing something wrong.
boost::any_cast requires the type to match exactly. In Christ, Steven Watanabe
participants (2)
-
joel falcou
-
Steven Watanabe