Boost logo

Boost :

From: Douglas Paul Gregor (gregod_at_[hidden])
Date: 2002-10-22 13:44:24

On Tue, 22 Oct 2002, Alexander Nasonov wrote:
> I started implementation of operators for dynamic_any. Currently, they are
> in examples.
> example4.cpp: negate and inplace_negate
> example5.cpp: dereference and increment
> URL for download is:
> Look how nice they are!

Very nice indeed!

(As always), on suggestion. dynamic_any could use the curiously recurring
template pattern to support member operators/functions directly. For
instance, the "dereference" class from example5.hpp could be augmented
with a mixin:

struct dereference : /* same as before */ {
  // same code as before...

  template<typename Derived>
  struct mixin {
    Derived operator*() const
      return boost::call(dereference(),
                         static_cast<const Derived&>(*this));

The mixin will be inherited by dynamic_any<Sequence> as
mixin<dynamic_any<Sequence> >. That sticks the dereference operator
directly in dynamic_any, so that member functions, operators, etc. can be
applied directly to dynamic_any objects that have them mixed-in.


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