Subject: Re: [boost] [uitility/result_of] CodeGear support of result_of
From: Daniel Walker (daniel.j.walker_at_[hidden])
Date: 2009-01-17 20:34:02


On Jan 16, 2009, at 8:05 PM, siliconman wrote:
> In article <E3FFB208-D69C-407B-B536-DC66617981A3_at_[hidden]>,
> Daniel Walker <daniel.j.walker_at_[hidden]> wrote:
>
>> When did codegear begin decltype support? The current codegear config
>> header configures Boost to assume decltype for all versions, which
>> seems suspect.
>
> 0x610 which is the first version that has __CODEGEARC__ defined.
> anything earlier would be the old __BORLANDC_ defines.

Ah, I can't keep track of what's what anymore, all this rebranding and
what not. ;)

>> If codegear supports decltype well enough to configure Boost to use
>> it, but not well enough to enable a C++0x-style result_of
>> implementation, we could revert to the old result_of for the specific
>> codegear version until someone finds a workaround or codegear's C++0x
>> support matures. I don't have access to codegear myself.
>
> I'm willing to try out any patches.

OK. Patch attached. Actually, the decltype-based result_of
implementation comes from a patch I submit and Doug applied last year.

https://svn.boost.org/trac/boost/ticket/862

I went ahead and put my name on it even though this is mostly Doug's
idea and all I did was code it up, write the test cases, update the
documentation, and I suppose now, I'm attempting to support it as best
I can. :)

The patch adds a new macro. As always, compilers that cannot support
result_of at all get BOOST_NO_RESULT_OF defined. But now, compilers
that cannot support this implementation of the ISO draft specification
of result_of get BOOST_NO_ISO_RESULT_OF defined. CodeGear tested at
0x610 is in the second camp but not the first. See the update
documentation in utility.htm.

Daniel Walker