On 4 November 2011 at 08:28, rom...@r-enthusiasts.com wrote: | Not a bug, this is expected behaviour. | | If you pass a matrix of ints to the NumericVector ctor, Rcpp has no choice but to coerce the data to a matrix of double, which means new data, hence the original data does not get modified. | | If you pass a matrix of double, no copy is required, therefore Rcpp operates directly on the data. | | Those are features.
And they are documented. Dirk | Le 4 nov. 2011 à 08:01, Darren Cook <dar...@dcook.org> a écrit : | | >> I.e. the point of his code was to show that a matrix of doubles gets | >> modified, a matrix of ints does not. | > | > Or change the first line from NumericMatrix to: | > Rcpp::IntegerMatrix r_m(mem); | > | > Then the behaviour is reversed. The matrix of doubles does not get | > modified, but the matrix of ints does! | > | > Dirk, Romain, this is a bug-in-waiting. Is there any way to generate a | > warning when the implicit deep copy happens? Or alternatively when the | > pointer is being used implicitly... but my hunch is that I want to know | > when there is any implicit conversion between int and double: modern C++ | > style is to explicitly declare all type conversions with static_cast<> | > and friends. | > | > Darren | > _______________________________________________ | > 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 | _______________________________________________ | 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 -- "Outside of a dog, a book is a man's best friend. Inside of a dog, it is too dark to read." -- Groucho Marx _______________________________________________ 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