Bug 31842

Summary: isnan undefined with -std=c++0x
Product: Sisyphus Reporter: Sergey V Turchin <zerg>
Component: gcc5Assignee: Gleb F-Malinovskiy <glebfm>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: glebfm
Version: unstable   
Hardware: all   
OS: Linux   

Description Sergey V Turchin 2016-02-26 11:38:47 MSK
#include <math.h>
не помогает, но помогает убирание флага компиляции -std=c++0x, что не всегда удобно.

Подробности:
http://git.altlinux.org/beehive/logs/Sisyphus-x86_64/latest/error/kde5-kholidays-15.12.1-alt1
Comment 1 Gleb F-Malinovskiy 2016-02-26 12:07:45 MSK
(In reply to comment #0)
> #include <math.h>
> не помогает, но помогает убирание флага компиляции -std=c++0x, что не всегда
> удобно.
> 
> Подробности:
> http://git.altlinux.org/beehive/logs/Sisyphus-x86_64/latest/error/kde5-kholidays-15.12.1-alt1

isnan является частью C++11, его и нужно использовать. Для избежания коллизий glibc больше не определяет свой isnan для кода на C++ >= 11.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d9b965fa56350d6eea9f7f438a0714c7ffbb183f
Comment 2 Gleb F-Malinovskiy 2016-02-26 12:12:56 MSK
Т.е. код, заявляющий, что он -std=c++11 (или -std=c++0x что то же самое), должен использовать свой родной std::isnan.