multiple inheritance abiguity

Rich Johnson rjohnson@dogstar-interactive.com
Fri Jan 20 02:53:00 GMT 2006


On Jan 19, 2006, at 10:52 AM, Gabriel Dos Reis wrote:
> [...snip...]
> | I think that what you're telling me is that the name resolution
> | algorithm uses _only_ the method's name (not its signature) to first
> | select a namespace,
>
> Not a namespace, but a base class.

Sorry, I was using namespace in the generic sense.

Are you telling me that C++ namespace function/static resolution  
operates _differently_ than it does class method/member resolultion?

> [...snip..]
> If you fully qualify the name, either as C1::f or C2::f, then you'll
> resolve the ambiguity.
>
Yeah, I know...but my question is why should I have to when there is  
no real ambiguity?
If I am to accept that namespace and class name resolutions operate  
differently.  What's the analog to "using namespace" if it's not  
public inheritance?

Can I do something like:

class M : public C1, public C2
{
using C1;
using C2;
}.

My problem is that C1 and C2 happen to be the same  template,  
instantiated with _different_ type parameters.  Does this mean that I  
have to explicitly and tediously list each and every single method in  
the template?



More information about the Gcc-help mailing list