Ошибка компиляции в компиляторе g ++ 4.3.4

#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) .

5
задан yshrini 27 December 2011 в 09:06
поделиться