|
Boost : |
From: Rodolfo Lima (rodolfo_at_[hidden])
Date: 2006-11-30 07:39:35
>> // This compiles nicely
>> aux_ptr ptr(new aux());
>> cout << (_1->*&aux::b)(ptr) << endl;
>>
> Hmm... why does this even compile? strange.
I see, after looking at the code I don't see a specialization for
plain_return_type_2<other_action<member_pointer_action> >. FYI I'm using g++
4.1.1.
>> Both versions above are delayed calls to user-defined operator->* and
> the in general the library
> won't guess what the result type should be.
> In the latter case the lib would have to guess that constness of
> aux_ptr means
> that R should be constified in the return, which is too much guess work.
Maybe lambda could support what I think is a common scenario, i.e., smart
pointer-like objects. The worst think that may happen is, IMO, a compilation
failure.
Regards,
Rodolfo Lima.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk