Boost logo

Boost :

From: Daniel Frey (daniel.frey_at_[hidden])
Date: 2002-02-18 11:36:14


Peter Dimov wrote:
>
> From: "Daniel Frey" <daniel.frey_at_[hidden]>
> >>>
> I'm reading all those pro-'auto' comments with a little fear. Why it
> 'auto' really needed if we have a good typeof? Example:
> <<<
>
> It depends on what you consider a 'good' typeof. A typeof that makes it easy
> to do auto/let things (IOW one that strips references and top-level cv
> qualifiers) isn't a good typeof as far as I'm concerned because it has
> little value.

Agreed.

> There's also the fact that when you have to repeat a complex expression
> twice you will make an error sooner or later. :-)

IMHO the question is: If we have your typeof, can we write a class
'auto' that doesn't require any further language support? Or something
which is similar, easy and doesn't "pollute" the language? Currently, a
function can deduct the template parameters from it's arguments. Can a
constructor do the same? Should it? Consider:

template< typename T > class auto // or 'any'
{
public:
   typedef ::boost::remove_reference< ::boost::remove_cv< T >::type
>::type type;

private:
   type content;

public:
   auto( T arg ) : content( arg ) {}
   operator T { return content; }
}

OK, the code is bad, but I hope you get the idea... basically, it should
be usable as

auto v( func< T, U, V >() );

but without 'auto' being a keyword that makes the compiler more complex.
The question is, if the language supports 'auto' instead of 'auto<...>'
like function calls today...

Regards, Daniel

--
Daniel Frey
aixigo AG - financial training, research and technology
Schloß-Rahe-Straße 15, 52072 Aachen, Germany
fon: +49 (0)241 936737-42, fax: +49 (0)241 936737-99
eMail: daniel.frey_at_[hidden], web: http://www.aixigo.de

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