|
Boost : |
From: Alan Griffiths (boost_at_[hidden])
Date: 2000-10-23 13:41:08
In message <006101c03d0a$8f1a59d0$056c410a_at_[hidden]>, David
Abrahams <abrahams_at_[hidden]> writes
>Here is a transcript of an exchange I had with Metrowerks' lead compiler
>engineer:
>
>I think that the error message is correct. The problem can be simplified to
>
>namespace re_detail {
>
> struct c_traits_base {
> protected:
> static void do_lookup_collate();
> };
>
> struct c_regex_traits : c_traits_base {
> static void lookup_collatename();
> };
>
> void c_regex_traits::lookup_collatename()
> {
> re_detail::c_traits_base::do_lookup_collate();
> }
>
>}
>
>"re_detail::c_traits_base::do_lookup_collate();" is not legal because
>"do_lookup_collate" is found by namespace access that is using a re_detail
>namespace qualification.
>
>The example will compile when you change the call to
>"c_traits_base::do_lookup_collate();" so that the name is found in a base
>class lookup.
There are a number of active issues on the core list around this area.
This covers similar ground to core-10 - but is a distinct problem. You
may be further entertained by the paper Martin J. O'Riordan wrote
(N1254) and/or the one Mark Radford and I wrote (N1268).
The relationship between the name that is resolved, the fully qualified
name it resolves to, and access rights is confusing.
-- Alan Griffiths (alan_at_[hidden]) http://www.octopull.demon.co.uk/ ACCU Chairman (chair_at_[hidden]) http://www.accu.org/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk