Boost logo

Boost :

From: Thorsten Ottosen (nesotto_at_[hidden])
Date: 2003-10-03 23:06:17


From: "David Abrahams" <dave_at_[hidden]>

> Pavol Droba <droba_at_[hidden]> writes:
>
> > Given this structure, "new" interface is just a part of layer
> > 2. This is the presentation layer, but it should be documented
> > so. Core should be always the layer 1 ( and the "old" interface
> > ). It is very importatn due to extensibility reasons.
>
> You've got it upside-down, if you care about compile-time efficiency.
> Using any one of the nested declarations of the "old" interface causes
> them all to be instantiated.

I don't understand this. Basically we use 4 helper classes to determine
which type we're dealing
with; when the right it found, we propagate the typedefs and functions. So
you're saying its cheaper to
instantiate X than Y

template< typename C >
struct X
{
   typedef ...::iterator iterator;
};

template< typename C >
struct Y
{
   typedef ...::size_type size_type;
   typedef ....::iterator iterator;
};

both wat if more than one declaration is needed? Won't many compilers reuse
the old intantiations instead of using all the decision logic again?

Thorsten


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk