Когда я переключаю версию компилятора из gcc 4.6 в gcc 4.8, я получаю следующую ошибку: ошибка: вызов перегруженного «isnan (double)» неоднозначен.porting isnan to C++ 11
Это потому, что в C++ 11 есть differend объявления функций: C: INT IsNaN (двойной) C++ 11: BOOL IsNaN (двойной)
от cpluplus:
- В C это выполняется как макрос, который возвращает значение int. Тип x должен быть плавающим, двойным или длинным двойным.
- В C++ он реализован с перегрузками функций для каждого типа с плавающей запятой, каждый из которых возвращает значение bool.
Как это исправить?
Как вы называете это? Покажите нам контекст. –
juanchoupanza предложение работал. Я ранее использовал пространство имен std, но мне все равно пришлось добавлять его к вызову isnan, потому что это был источник неоднозначности. –
Это именно то, что не так с 'use namespace std' повсюду. –