Boost logo

Boost Users :

From: David Abrahams (dave_at_[hidden])
Date: 2005-07-26 22:00:47


"Nat Goodspeed" <ngoodspeed_at_[hidden]> writes:

>> -----Original Message-----
>> From: boost-users-bounces_at_[hidden] [mailto:boost-users-
>> bounces_at_[hidden]] On Behalf Of David Abrahams
>> Sent: Tuesday, July 26, 2005 5:41 PM
>> To: boost-users_at_[hidden]
>> Subject: Re: [Boost-users] [Iterators] Change in transform_iterator
>> from1.31 to1.32?
>>
>> If Nat were using the actual type of the bind expression as the first
>> argument to transform_iterator, this wouldn't be a problem (except --
>> not sure if you care -- that it would be returned by value from the
>> iterator). Presumably, the bind object has an appropriate
>> non-reference nested result_type.
>
> [Nat] I must be missing something here -- but I'm eager for
> enlightenment. boost::bind() is a runtime expression. I need to write a
> typedef for const_iterator before we get anywhere near that point. How
> can I use a type defined on the bind object for the typedef I need?

If the bind documentation doesn't tell you the type of that object
(does it?), then officially you can't. Unofficially, you could pass
the result of the bind expression to a function template that does
something illegal on it, like

          template <class F>
          void show_me_the_type(F const& f) { f += "hello"; }

and your compiler will probably show it to you.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net