#include <iostream>
#include <string.h>
char* basename(const char* filname);
int main()
{
return 0;
}
char *basename(const char* filename)
{
char* base = (char *)filename;
return base ;
}
компиляция на g ++ 4.1.2 20070115 (SUSE 10): нет проблем
компиляция на g ++ 4.3.4 (SUSE 11) дает следующую ошибку
fileName: 9: error: объявление char * basename (const char *) генерирует другое исключение
fileName: 3: error: из предыдущего объявления char * basename (const char *) throw ().
Пожалуйста, скажите мне, почему это происходит. Есть ли какие-либо изменения интерфейса в g ++ между этими двумя выпусками (если я удалю включение string.h, тогда компиляция будет успешной в обеих версиях g ++, есть ли какие-либо изменения интерфейса в string.h) .