On Thu, Jul 11, 2013 at 8:56 AM, Changi Han <changi.han....@gmail.com> wrote: > I entirely missed that thread ... sorry. I came across the above examples > at: > > http://lists.r-forge.r-project.org/pipermail/rcpp-devel/2013-April/005680.html > > > On Thu, Jul 11, 2013 at 8:38 PM, Gabor Grothendieck > <ggrothendi...@gmail.com> wrote: >> >> On Thu, Jul 11, 2013 at 8:32 AM, Changi Han <changi.han....@gmail.com> >> wrote: >> > Hello, >> > >> > I think I (superficially) understand the difference between: >> > >> > // [[Rcpp::export]] >> > double sum1(Rcpp::NumericMatrix M) { >> > arma::mat A(M.begin(), M.rows(), M.cols(), false); >> > return sum(sum(A)); >> > } >> > >> > >> > // [[Rcpp::export]] >> > double sum2(arma::mat A) { >> > return sum(sum(A)); >> > } >> > >> > Partly out of laziness, partly because sum2 is more elegant, and partly >> > to >> > avoid namespace pollution, I was wondering if there is a way to "force" >> > a >> > "shallow" copy in sum2. >> > >> > If not, then may I submit a low priority feature request. An attribute? >> > Some >> > thing like: >> > >> > // [[Rcpp::export]] >> > double sum2(arma::mat A) { >> > // [[ Rcpp::shallow ( A ) ]] >> > return sum(sum(A)); >> > } >> > >> > Or (akin to C++11 generalized attributes) >> > >> > // [[Rcpp::export]] { [[ Rcpp::shallow ( A ) ]] } >> > double sum2(arma::mat A) { >> > return sum(sum(A)); >> > } >> > >> > An alternative is to have an argument in sourceCpp that takes a >> > list/vector >> > of objects that are to be shallow or deep copied. >> > >> > For example in sum1, if M is changed within the function before casting >> > to >> > the arma::mat, then might be cleaner to add M to a list/vector of >> > objects to >> > be deep copied rather than cloning M within sum1: leads to one fewer >> > variable name. >> > >> > Just a thought. I can certainly live with the additional step. As >> > always, >> > thanks for all the Rcpp goodness. >> >> I had just made a similar suggestion in my post about half an hour ago. > >
It does suggest that many people are thinking along the same lines in terms of new desirable features. -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com _______________________________________________ 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