Boost logo

Boost Users :

Subject: Re: [Boost-users] [iterator] error while accessing member of result of brackets-operator
From: Krzysztof Czainski (1czajnik_at_[hidden])
Date: 2014-01-10 05:10:07


2014/1/10 Sebastian Pfützner <s.pfuetzner_at_[hidden]>

> On 09.01.2014 17:43, Krzysztof Czainski wrote:
>
>> That said, here's a hack for you: right after the definition of struct S
>> insert this code:
>>
>> class It;
>>
>> namespace boost { namespace detail {
>> template <> struct operator_brackets_result<It,S,S&>
>> { typedef S& type; };
>> }}
>>
>
> That works in the example. In my real code, /It/ is a template and I don't
> know how to specialize operator_brackets_result for each instantiation.
>

It should be possible to write a partial specialization of
operator_brackets_result<> for the whole template It.

For example:

template < class T > class It;

namespace boost { namespace detail {
template < class T > struct operator_brackets_result<It<T>,T,T&>
{ typedef T& type; };
}}

Regards
Kris



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