Re: [Rcpp-devel] Forcing a shallow versus deep copy

2013-09-13 Thread Dirk Eddelbuettel
On 13 September 2013 at 17:56, Romain Francois wrote: | Here is where I am now. To wrap up this function: [...] | This is simple and elegant. And now we can pass down references and | const references of armadillo matrices from R without performance penalty. | | This makes using RcppArmadillo ev

Re: [Rcpp-devel] Forcing a shallow versus deep copy

2013-09-13 Thread Romain Francois
Le 13/09/13 14:00, JJ Allaire a écrit : Is it a big deal that we would cheat on chat reference passing means ? If you want to implement these sort of semantics I think at a _minimum_ the type should be const & (otherwise it looks like you are going to actually modify the matrix in place whi

Re: [Rcpp-devel] Forcing a shallow versus deep copy

2013-09-13 Thread Romain Francois
Le 13/09/13 14:15, Romain Francois a écrit : But I realize this might be a strech and we can definitely only have const references. Which is easier to implement anyway and we would not need the reference counting stuff I was talking about before. spoke too soon. We would need it otherwise we r

Re: [Rcpp-devel] Forcing a shallow versus deep copy

2013-09-13 Thread Romain Francois
Le 13/09/13 14:00, JJ Allaire a écrit : Is it a big deal that we would cheat on chat reference passing means ? If you want to implement these sort of semantics I think at a _minimum_ the type should be const & (otherwise it looks like you are going to actually modify the matrix in place whi

Re: [Rcpp-devel] Forcing a shallow versus deep copy

2013-09-13 Thread JJ Allaire
> > Is it a big deal that we would cheat on chat reference passing means ? > If you want to implement these sort of semantics I think at a _minimum_ the type should be const & (otherwise it looks like you are going to actually modify the matrix in place which would appear to bypass the implicit me

Re: [Rcpp-devel] Forcing a shallow versus deep copy

2013-09-13 Thread Romain Francois
Hello, (sorry this had to wait a few months, but now I have an idea about this) We all love to be able to do that: #include using namespace Rcpp ; // [[Rcpp::depends("RcppArmadillo")]] // [[Rcpp::export]] void do_stuff( arma::mat m ){ // do stuff with m } This is really nice. But R does