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).

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org
_______________________________________________
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

Reply via email to