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
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel