File tree Expand file tree Collapse file tree 3 files changed +29
-0
lines changed Expand file tree Collapse file tree 3 files changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -116,6 +116,16 @@ namespace Rcpp {
116
116
*/
117
117
inline bool isSet (void ) const { return m_set; }
118
118
119
+ /* *
120
+ * Returns m_sexp as a T
121
+ */
122
+ inline T as () { return Rcpp::as< T >(get ()); }
123
+
124
+ /* *
125
+ * Return a clone of m_sexp as a T
126
+ */
127
+ inline T clone () const { return Rcpp::clone (as ()); }
128
+
119
129
private:
120
130
SEXP m_sexp;
121
131
bool m_set;
Original file line number Diff line number Diff line change @@ -198,3 +198,12 @@ SEXP testNullableGet(const Nullable<NumericMatrix>& M) {
198
198
return M.get ();
199
199
}
200
200
201
+ // [[Rcpp::export]]
202
+ NumericMatrix testNullableAs (Nullable<NumericMatrix>& M) {
203
+ return M.as ();
204
+ }
205
+
206
+ // [[Rcpp::export]]
207
+ NumericMatrix testNullableClone (const Nullable<NumericMatrix>& M) {
208
+ return M.clone ();
209
+ }
Original file line number Diff line number Diff line change @@ -185,4 +185,14 @@ if (.runThisTest) {
185
185
M <- matrix (1 : 4 , 2 , 2 )
186
186
checkEquals( testNullableGet(M ), M )
187
187
}
188
+
189
+ test.NullableAccessAs <- function () {
190
+ M <- matrix (1 : 4 , 2 , 2 )
191
+ checkEquals( testNullableAs(M ), M )
192
+ }
193
+
194
+ test.NullableAccessAs <- function () {
195
+ M <- matrix (1 : 4 , 2 , 2 )
196
+ checkEquals( testNullableClone(M ), M )
197
+ }
188
198
}
You can’t perform that action at this time.
0 commit comments