From: Noel Yap (Noel.Yap_at_[hidden])
Date: 2003-05-03 18:52:02


Gregory Colvin wrote:
>
> On Saturday, May 3, 2003, at 17:13 America/Denver, Noel Yap wrote:
>
> > Noel Yap wrote:
> >> std::auto_ptr< T > t( new T() );
> >> f( boost::dumb_ptr< T >( t.get() ); // clearly an in/out parameter
> >
> > Or if you don't want to dynamically allocate t:
> >
> > T t;
> > f( boost::dumb_ptr< T >( &t ) ); // clearly an in/out parameter
> >
> > static T t;
> > f( boost::dumb_ptr< T >( &t ) ); // clearly an in/out parameter
>
> Not so clear -- it depends on whether f() cares about the initial
> value of t.

So you're saying the parameter can be an out-only parameter? If so, for
out parameters, use:

  boost::dumb_ptr< T > f();
  t = f();

IMHO, the intent is much more clear than:

  f( out< T > t );
  f( out< T >( t ) );

> Also, not in my opinion any more clear than:
>
> f(&t);

I agree, but the OP doesn't like raw pointers from what I've gathered
from the thread.

Noel