[c++0x] result_of

Paolo Carlini paolo.carlini@oracle.com
Tue Sep 30 16:49:00 GMT 2008


Hi Jonathan,

and sorry about the delay, wanted to review some background material  
before answering...

On Sep 19, 2008, at 12:36 AM, Jonathan Wakely wrote:

> 2) According to TR1 all function objects defined by the standard
> library must give the right answer with tr1::result_of. Making that
> work might require a result_type typedef or a result_of partial
> specialisation to be added to some components outside the tr1 dir e.g.
> std::default_delete (or tr1::result_of could use decltype too.)

To be clear, the usual policy: we want the TR1 facilities to be  
essentially frozen. Certainly we don't want to update / extend the TR1  
facilities to deal "correctly" with newer components, objects, etc,  
specified in the C++0x draft. TR1 must be consistent with C++03 and  
only with C++03. For the C++0x facilities we can afford to take  
(limited ;) risks, consistently with the experimental nature of the C+ 
+0x switch itself. That said, I always suggest proceeding in a  
stepwise way as much as possible: in a first installment of new  
facilities better not covering some special cases in new clauses and  
play safe with the rest of the library.

> This probably isn't ready to go in, but here's a patch for discussion.
> If I've missed an obvious way to do it better please point it out! :-)

I think the patch is Ok as-is to close the PR. But please, try to  
follow the iter of the issues which you posted on the reflector and  
the following resolutions: eventually we don't want #if 0 blocks in  
the code delivered as part of gcc4.4.0, much better making a well  
thought choice and in a comment providing pointers to people willing  
to further investigate the options. Even more so for C++0x material.

Thanks again,
Paolo.



More information about the Libstdc++ mailing list