[Rcpp-devel] return Colvec as vector

Serguei Sokol serguei.sokol at gmail.com
Thu Jul 27 18:37:41 CEST 2017


I can hear from here "Oh no, not again this question!" ;)
But this time it is not a question it is a feature suggestion.
What if we replace in RcppArmadilloWrap.h:64:
     template <typename T> SEXP wrap( const arma::Col<T>& data ){
         return RcppArmadillo::arma_wrap( data, Dimension( data.n_elem, 1) ) ;
     }
by something like:
     template <typename T> SEXP wrap( const arma::Col<T>& data ){
#ifdef RETURN_COLVEC_AS_VECTOR
         return RcppArmadillo::arma_wrap( data ) ;
#else
         return RcppArmadillo::arma_wrap( data, Dimension( data.n_elem, 1) ) ;
#endif
     }

In this way, a legacy code relying on one column matrix is not impacted,
while other users can define a macro RETURN_COLVEC_AS_VECTOR
before "#include <Rcpp>" and enjoy a more intuitive behavior.

Was it already proposed and rejected?

Best,
Serguei.



More information about the Rcpp-devel mailing list