|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2004-03-10 08:31:29
Pavol Droba <droba_at_[hidden]> writes:
> On Tue, Mar 09, 2004 at 01:40:50PM -0800, Thomas Witt wrote:
>> Pavol Droba wrote:
>>
>> >Hi,
>> >
>> >I have a problem with iterator_facade usage. Error is reported by Comeau
>> >and MIPSPro compilers:
>> >
>> >An error output can be found in regression tables:
>> >
>> >http://tinyurl.com/37mxz
>> >
>> >The compiler is reporting, that iterator_core_access cannot access
>> >the private equal() function, althought it has been marked as friend.
>>
>> IIUC the compiler is right. The friend declaration in
>> boost::algorithm::find_iterator declares
>> boost::algorithm::iterator_core_access as friend. Not
>> boost::iterator_core_access. IIUC there is no name lookup on unqualified
>> names in friend class declarations. See core issue 138 for further
>> information.
>>
>> Changing the friend declaration to friend class
>> ::boost::iterator_core_access should fix the problem.
>>
>
> Thanks for explanation. I didn't know about this issue, although it perfectly
> makes sense. IMO such an issue should be noted in the iterator_facade docs
> and examples, because it can be easily overlooked (at least I overlooked it
> very easily:) )
Appropriate clarifying patches to the .rst files would be gratefully
accepted! You don't need to worry about getting .rst syntax right;
we can fix that for you if needed.
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk