strange behaviour of g++
Peter Schmid
schmid@ltoi.iap.physik.tu-darmstadt.de
Mon Feb 9 09:36:00 GMT 1998
While building tccs the compiler says:
call of overloaded `fatal(char[30], const char *&, const char *&)'
is ambiguous. I added the function mein.
I see no ambiguity here. gcc-2.7.2 compiles the file.
Peter Schmid
cat komisch.C
class TccsBase {
public:
TccsBase(void);
virtual ~TccsBase() {}
void fatal(const char *fmt, ...) const;
void fatal(bool doperror, const char *fmt, ...) const;
void mein(const char *option,bool readonly,const char *argument);
};
class TccsCmd : public TccsBase {
// private:
public:
void _cmdParseRCOption(const char *option,
bool readonly,
const char *argument);
public:
virtual ~TccsCmd();
};
void TccsBase::mein(const char *option, bool readonly, const char *argument)
{
fatal("invalid umask value (%s = %s)", option, argument);
fatal(readonly,"invalid modes value (%s = %s)", option, argument);
}
void TccsCmd::_cmdParseRCOption(const char *option,
bool readonly, const char *argument)
{
fatal("invalid umask value (%s = %s)", option, argument);
fatal(readonly,"invalid modes value (%s = %s)", option, argument);
}
g++ -c komisch.C
komisch.C: In method `void TccsBase::mein(const char *, bool, const char *)':
komisch.C:24: call of overloaded `fatal(char[30], const char *&, const char *&)' is ambiguous
komisch.C:6: candidates are: TccsBase::fatal(bool, const char * ...) const
komisch.C:5: TccsBase::fatal(const char * ...) const
komisch.C: In method `void TccsCmd::_cmdParseRCOption(const char *, bool, const char *)':
komisch.C:31: call of overloaded `fatal(char[30], const char *&, const char *&)' is ambiguous
komisch.C:6: candidates are: TccsBase::fatal(bool, const char * ...) const
komisch.C:5: TccsBase::fatal(const char * ...) const
More information about the Gcc-bugs
mailing list