Subject: Re: [boost] [typeof][implementation]why not use decltype or conditional expr?
From: Larry Evans (cppljevans_at_[hidden])
Date: 2012-08-03 18:59:32
On 08/03/12 13:46, Steven Watanabe wrote:
> On 08/03/2012 09:22 AM, Larry Evans wrote:
>> Why couldn't the BOOST_TYPEOF macro be defined
>> to simply use the new keyword, decltype, if
>> it's available? I assume the macro, BOOST_HAS_DECLTYPE,
>> indicates whether it is available.
> I assume Boost.Typeof will eventually
> be updated to use decltype.
>> And if decltype not available, why couldn't it use the
>> conditional expression method described here:
>> I would think that would be simpler and more portable.
> I don't see how it's possible to implement
> BOOST_TYPEOF this way.
If only there were a way to get the type of an expression without
evaluating the expression. There is! The unique properties of the
conditional operator allow us to sidestep the issue entirely. The
ENCODED_TYPEOF macro defined below encodes the type of an expression
without evaluating it. Read on to see how it works.
IIUC, the purpose of decltype is to "get the type of an expression
without evaluating the expression"; hence, if the current BOOST_TYPEOF
can be implemented with decltype, and the above quote from foreach2.html
is correct, then the current BOOST_TYPEOF can be implemented with the
method described in the foreach2.html page.
Am I missing something?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk