Bug 31842 - isnan undefined with -std=c++0x
Summary: isnan undefined with -std=c++0x
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: gcc5 (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Gleb F-Malinovskiy
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-02-26 11:38 MSK by Sergey V Turchin
Modified: 2016-02-26 12:12 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.