[Rcpp-devel] function created from cxxfunction modifies input?

Dirk Eddelbuettel edd at debian.org
Sun Jul 8 02:23:03 CEST 2012


On 8 July 2012 at 01:46, Alexandre Bujard wrote:
| Hi Joshua,
| 
| When you declare "NumericVector xx(x)" xx is a copy of the pointer x. But they
| both address the same location in the memory.

+1

| What you need here is to do a "deep copy" of the vector x. The best was to do
| that in Rcpp is to use the function "clone".

+1

Are created a few object, eg via

   NumericVector xx(x.size());   // ctor using int n of size

| Also declaring your vector xx with "const" will guarantee that your vector x
| will not be modified by the function.

That is not true, I think. C++ will make sure xx remains const, but we care
about is the memory pointed to, and that doesn't get the const protection.

Dirk
 
-- 
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com  


More information about the Rcpp-devel mailing list