Skip to content

Commit a14a3fd

Browse files
committed
steps towards addressing #781
1 parent 41ee833 commit a14a3fd

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

inst/include/Rcpp/date_datetime/date_datetime.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//
33
// date_datetime.h: Rcpp R/C++ interface class library -- Date and Datetime support
44
//
5-
// Copyright (C) 2016 Dirk Eddelbuettel
5+
// Copyright (C) 2016 - 2017 Dirk Eddelbuettel
66
//
77
// This file is part of Rcpp.
88
//
@@ -32,7 +32,7 @@
3232

3333
namespace Rcpp {
3434

35-
// this will not be on by default
35+
// this is on by default since Rcpp 0.12.14
3636
#if defined(RCPP_NEW_DATE_DATETIME_VECTORS)
3737

3838
typedef newDateVector DateVector;

inst/include/Rcpp/sugar/functions/is_na.h

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,11 @@ class IsNa_Vector_is_na : public Rcpp::VectorBase<LGLSXP, false, IsNa_Vector_is_
7272
IsNa_Vector_is_na( const T& x) : ref(x){}
7373

7474
inline int operator[]( R_xlen_t i) const {
75+
#if defined(RCPP_NEW_DATE_DATETIME_VECTORS)
76+
return ::Rcpp::traits::is_na<T>(ref[i]);
77+
#else
7578
return ref[i].is_na() ;
79+
#endif
7680
}
7781

7882
inline R_xlen_t size() const { return ref.size() ; }
@@ -84,16 +88,25 @@ class IsNa_Vector_is_na : public Rcpp::VectorBase<LGLSXP, false, IsNa_Vector_is_
8488
} // sugar
8589

8690
template <int RTYPE, bool NA, typename T>
87-
inline sugar::IsNa<RTYPE,NA,T> is_na( const Rcpp::VectorBase<RTYPE,NA,T>& t){
88-
return sugar::IsNa<RTYPE,NA,T>( t ) ;
91+
inline sugar::IsNa<RTYPE,NA,T> is_na( const Rcpp::VectorBase<RTYPE,NA,T>& t) {
92+
return sugar::IsNa<RTYPE,NA,T>(t);
8993
}
9094

91-
inline sugar::IsNa_Vector_is_na<DatetimeVector> is_na( const DatetimeVector& x){
95+
inline sugar::IsNa_Vector_is_na<DatetimeVector> is_na(const oldDatetimeVector& x) {
9296
return sugar::IsNa_Vector_is_na<DatetimeVector>( x ) ;
9397
}
94-
inline sugar::IsNa_Vector_is_na<DateVector> is_na( const DateVector& x){
95-
return sugar::IsNa_Vector_is_na<DateVector>( x ) ;
98+
99+
inline sugar::IsNa_Vector_is_na<oldDateVector> is_na(const oldDateVector& x) {
100+
return sugar::IsNa_Vector_is_na<oldDateVector>(x);
101+
}
102+
103+
inline sugar::IsNa_Vector_is_na<NumericVector> is_na(newDatetimeVector& x) {
104+
return sugar::IsNa_Vector_is_na<NumericVector>(x);
96105
}
106+
inline sugar::IsNa_Vector_is_na<NumericVector> is_na(newDateVector& x) {
107+
return sugar::IsNa_Vector_is_na<NumericVector>(x);
108+
}
109+
97110

98111
} // Rcpp
99112
#endif

0 commit comments

Comments
 (0)