Boost logo

Boost :

From: shunsuke (pstade.mb_at_[hidden])
Date: 2007-03-22 04:55:58

Daniel Walker wrote:
> On 3/21/07, shunsuke <pstade.mb_at_[hidden]> wrote:
>> Daniel Walker wrote:
>>> If/when lambda standardizes on
>>> result<>, the lambda related special cases in result_of can be
>>> removed.
>> It will break a code using not result_of but sig compatible functors?
> Yes. That's the reason lambda would support both for a time with sig<>
> being deprecated. After a release or two (giving users plenty of time
> to update their code) sig<> would be removed. This gives them a fair
> warning and time to adapt.

I think users don't want to spend the time.
Smart users will protect themselves right now by using something like..

struct sig_compatible_fun
   : enable_result_of_sig // added
    // ...

Hmm, patch is no longer required. :-)

>> Can the patch support a sig compatible functor
>> which is "nullary-callable" (e.g. lambda::constructor<>) ?
> Yes. I just tested it with lambda::constructor<>, and it does work.

I tried this:

#include <boost/utility/result_of.hpp>
#include <boost/lambda/construct.hpp>

int main()
     using boost::lambda::constructor;
     using boost::result_of;

     int i = 1;
         r = constructor<int>()(i); // (1) GCC compiles.

         r = constructor<int>()(); // (2) GCC fails.

I guess a sig-compatible functor which is nullary-callable must be
ported to result_of, even if the patch is applied.

Note that nullary instantiation of 'result_of' must always succeed.
(See the rationale at

Well, I have bad news. VC++7.1 and VC8 can't compile (1) nor (2). :-(

>> I introduce <boost/detail/functionN.hpp> at Boost.Accumulators,
>> which seems very cool.
> I looked for your file in the boost-sandbox cvs repository and
> couldn't find it. Could you send a link?

See the in "Math - Numerics" directory at Boost Vault.


Shunsuke Sogame

Boost list run by bdawes at, gregod at, cpdaniel at, john at