|
Boost : |
From: Jeff Flinn (TriumphSprint2000_at_[hidden])
Date: 2004-05-28 08:54:34
"Johan Nilsson" <johan.nilsson_at_[hidden]> wrote in message
news:c97cum$cn2$1_at_sea.gmane.org...
>
> "Jeff Flinn" <TriumphSprint2000_at_[hidden]> wrote in message
> news:c97afd$60h$1_at_sea.gmane.org...
> >
> > "Johan Nilsson" <johan.nilsson_at_[hidden]> wrote in message
> > news:c96p5d$qlg$1_at_sea.gmane.org...
> > >
>
> [...]
>
> > matter
> > > if this is a two-step procedure:
> > > Allocate in constructors + Initialize in entry
> > > or one-step:
> > > Allocate and initialize in constructor.
> >
> > class astate : non_copyable
> > {
> > T& mRef;
> >
> > astate();
> >
> > public:
> >
> > astate( T& aRef ):mRef(aRef){ aRef.somefunction(); }
> >
> > void init( T& aRef ){ mRef = aRef; mRef.somefunction(); } // not the
> > same
> >
> > };
>
> No, of course not. I meant:
>
> // one-step
> class astate : non_copyable { ...
> astate( T& aRef ):mRef(aRef){ aRef.somefunction(); }
> ... };
>
> versus:
>
> // two-step
> class astate : non_copyable { ...
> astate( T& aRef ):mRef(aRef){}
> void entry(){ mRef.somefunction(); }
> ... };
This assumes that you have access to the same information at construction
time as at the call to astate::entry (you previously were discussing
init/deinit). I was pointing out that separating out init() does in fact
come with some cost to flexibility.
Jeff Flinn
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk