C++: const and typedef
Guignon Thomas
guignon@asci.fr
Wed Jul 5 06:23:00 GMT 2000
Hello,
Here a sample code the give an error:
typedef char* toto;
class titi{
public:
void test(const char* t);
};
void titi::test(const toto t){
}
compiling with:
g++ -v test.cc
gives:
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 20000313 (Debian GNU/Linux)
/usr/lib/gcc-lib/i386-linux/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ test.cc /tmp/ccKm3xkV.ii
GNU CPP version 2.95.2 20000313 (Debian GNU/Linux) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
End of omitted list.
/usr/lib/gcc-lib/i386-linux/2.95.2/cc1plus /tmp/ccKm3xkV.ii -quiet -dumpbase test.cc -version -o /tmp/cckxLAwH.s
GNU C++ version 2.95.2 20000313 (Debian GNU/Linux) (i386-linux) compiled by GNU C version 2.95.2 20000313 (Debian GNU/Linux).
test.cc:8: prototype for `void titi::test(char *)' does not match any in class `titi'
test.cc:5: candidate is: void titi::test(const char *)
It seams that the const keyword in definition on titi::test is
forgotten.
note that the following work perfectly:
typedef char toto;
class titi{
public:
void test(const char t);
};
void titi::test(const toto t){
}
--
Thomas Guignon (guignon@asci.fr)
Laboratoire ASCI, ORSAY(France), www.asci.fr
#####
More information about the Gcc-bugs
mailing list