я следующий код:Использование IsNaN в функции шаблона
template<int FORMAT>
int double_to_bulk(double value,
char* buf,
double max_num,
int* state = NULL)
{
if (isnan(value))
{
//Something to do
return 1;
}
//Something more to do
}
и странные ошибки компиляции:
myfile.h: In function ‘int double_to_bulk(double, char*, double, int*)’:
myfile.h:351: error: there are no arguments to ‘isnan’ that depend on a template parameter, so a declaration of ‘isnan’ must be available
myfile.h:351: error: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
Но я действительно не хочу, чтобы использовать -fpermissive
Я использую gcc 4.1.2
, довольно старый, но ничего общего с этим. Почему в функции шаблона используется проблема isnan
?
в C99 она существует как макросы. И да, это было просто не определено. Меня просто смутило такое странное сообщение компилятора. – Arkady