Boost logo

Boost Users :

From: Gennadiy Rozental (gennadiy.rozental_at_[hidden])
Date: 2006-10-06 12:39:46


"Stefan Schild" <schilds_at_[hidden]> wrote in message
news:eg3r7s$bcb$1_at_sea.gmane.org...
> Hi there
>
> Having a templatized base class B
>
> template<class T>
> class B .....
>
> is it possible to enforce that a class D can derive from B IF AND ONLY
> IF the curiously recurring template pattern is applied, that is
>
> class D1 : public B<D1> ... // ok, compile
> class D2 : public B<X> ... // not ok, do not compile
>
> ???
>
> Thx
> Stefan

Did you try:

template<typename T>
class B {
    BOOST_STATIC_ASSERT( boost::is_base_and_derived<B<T>, T>::value );
   ....
};

Gennadiy


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net