On 09.01.2014 17:43, Krzysztof Czainski wrote: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.
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; };
}}