$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Toon Knapen (toon.knapen_at_[hidden])
Date: 2003-01-12 12:53:30
I've been looking through some real code to see where we pactically could
benefit from MPL and think I've found a nice one :
If one wants to integrate generic programming inside a strong OO designed
program, you might want to try to downcast a pointer to a base-class to all
possible derived-classes and once you found the right derived class (and got
all the type information you need again) you can restart using templates and
a real generic approach. However to do this 'trick ' in a scalable manner,
you need to try all downcasts based on a compile-time list of all derived
classes instead of hardcoding the list like :
downcast(base_class* base) {
derived1 d1 = dynamic_cast< derived1* >( base ) ;
if ( d1 ) foo< derived1 >( d1 ) ;
derived2 d2 = dynamic_cast< derived2* >( base ) ;
if ( d2 ) foo< derived2 >( d2 ) ;
}
This might seem like bad design but is a very helpfull construct to avoid
performance penalties from a to much OO oriented approach by implementing
performance critical pieces using generic programming. Therefor I think it
can appeal to many people that are coming from OO and start looking at
generic programming.
toon