Skip to content

Commit e50563c

Browse files
sfinae for is_na so that implementations double and !double are separate
1 parent 162b51c commit e50563c

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

inst/include/cpp11/R.hpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
// clang-format on
3030

3131
#include "cpp11/altrep.hpp"
32+
#include <type_traits>
3233

3334
namespace cpp11 {
3435
namespace literals {
@@ -48,13 +49,13 @@ template <typename T>
4849
inline T na();
4950

5051
template <typename T>
51-
inline bool is_na(T value) {
52+
inline typename std::enable_if<!std::is_same<T, double>::value, bool>::type is_na(T value) {
5253
return value == na<T>();
5354
}
5455

55-
template <>
56-
inline bool is_na<>(double x) {
57-
return ISNA(x);
56+
template <typename T>
57+
inline typename std::enable_if<std::is_same<T, double>::value, bool>::type is_na(T value) {
58+
return ISNA(value);
5859
}
5960

6061
} // namespace cpp11

0 commit comments

Comments
 (0)