$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: dan marsden (danmarsden_at_[hidden])
Date: 2006-05-05 16:27:46
David Abrahams wrote:
>dan marsden <danmarsden_at_[hidden]> writes:
>
>> The ref/cref generation is currently in detail, so library private
>> implementation, and the is_const switch is repeated as with my
>> example. So yes this is a recurring theme, we could provide a
>> utility to do the necessary, but that does not seem to be a feature
>> specific to fusion (as opposed to any other lib that needs to make
>> similar decisions, I believe there is similar code in phoenix for
>> example).
>>
>> Possibly we could make this decision at a higher level, in deref
>> proper for example, but I'm not sure the logic is appropriate in all
>> cases, such as transform views, were it may be appropriate to return
>> non-const refs from a deref of a const container.
>
>IMO you can do better.
We're considering a utility metafunction that can be used to generate the
return type for the various places where element access is required:
element_ref<Seq, Element>::type
It will then do the add_reference and add_const if needed based on the Seq
the element is from. It can then be used to avoid the fiddling above in what I
suspect is the common case.
Is this sufficient improvement, or did you have something grander in mind?
Cheers
Dan