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