Le 28/07/2017 à 13:45, Dirk Eddelbuettel a écrit :
On 27 July 2017 at 18:37, Serguei Sokol wrote: | 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? Don't think so, but I have thought about it too, and I was planning to bring this up. I also find the 'always forced to be dimension one matrix' to be a (very early) design decision I would not make again. And I have been thinking along similar lines---we need an option to restore it / keep it as the defaults, and a newer alternative to let this collapse to a dimless vector. What you rprose could work (maybe by prefixing RCPP_ARMADILLO_ to the #define though).
Cool. Then to be complete, we can think about a full set of options, smth. like: RCPP_ARMADILLO_RETURN_COLVEC_AS_VECTOR RCPP_ARMADILLO_RETURN_ROWVEC_AS_VECTOR RCPP_ARMADILLO_RETURN_ANYVEC_AS_VECTOR Serguei. _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel