From 2e89a60c2dd405f4891e6d8e6f1b24747ee5790c Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Wed, 11 Dec 2019 14:51:16 +0100 Subject: [PATCH] libcom: properly declare isnan() in C++ code --- src/libCom/cppStd/epicsAlgorithm.h | 4 +++- src/libCom/iocsh/iocsh.cpp | 3 +++ src/libCom/test/epicsAlgorithmTest.cpp | 4 ++++ src/libCom/test/epicsCalcTest.cpp | 4 ++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/libCom/cppStd/epicsAlgorithm.h b/src/libCom/cppStd/epicsAlgorithm.h index 20850242d..54dec91e9 100644 --- a/src/libCom/cppStd/epicsAlgorithm.h +++ b/src/libCom/cppStd/epicsAlgorithm.h @@ -13,7 +13,9 @@ #ifndef __EPICS_ALGORITHM_H__ #define __EPICS_ALGORITHM_H__ -#include "epicsMath.h" +#include + +using std::isnan; // The C++ standard only requires types to be less-than comparable, so // the epicsMin and epicsMax templates only use operator < diff --git a/src/libCom/iocsh/iocsh.cpp b/src/libCom/iocsh/iocsh.cpp index 03d4c28b4..307fabfbf 100644 --- a/src/libCom/iocsh/iocsh.cpp +++ b/src/libCom/iocsh/iocsh.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #define epicsExportSharedSymbols #include "errlog.h" @@ -31,6 +32,8 @@ #include "cantProceed.h" #include "iocsh.h" +using std::isinf; + extern "C" { /* diff --git a/src/libCom/test/epicsAlgorithmTest.cpp b/src/libCom/test/epicsAlgorithmTest.cpp index fa8c0c03f..108c15d62 100644 --- a/src/libCom/test/epicsAlgorithmTest.cpp +++ b/src/libCom/test/epicsAlgorithmTest.cpp @@ -9,11 +9,15 @@ // epicsAlgorithmTest.cpp // Authors: Jeff Hill & Andrew Johnson +#include + #include "epicsUnitTest.h" #include "epicsAlgorithm.h" #include "epicsMath.h" #include "testMain.h" +using std::isnan; + MAIN(epicsAlgorithm) { testPlan(22); diff --git a/src/libCom/test/epicsCalcTest.cpp b/src/libCom/test/epicsCalcTest.cpp index 2492c95ba..aae412262 100644 --- a/src/libCom/test/epicsCalcTest.cpp +++ b/src/libCom/test/epicsCalcTest.cpp @@ -8,6 +8,7 @@ #include #include +#include #include "epicsUnitTest.h" #include "epicsTypes.h" @@ -16,6 +17,9 @@ #include "postfix.h" #include "testMain.h" +using std::isnan; +using std::isinf; + /* Infrastructure for running tests */ double doCalc(const char *expr) {