Le 20 août 2014 à 20:57, Gregor Kastner <gregor.kast...@wu.ac.at> a écrit :
> JJ> Yes, RNGScope isn't safe by itself. You can use it via attributes (and we > JJ> make sure to use it correctly) or you could use this pattern e.g. if you > JJ> are planning to return a NumericVector: > JJ> > JJ> NumericVector vec(20); // or whatever size, the important thing is > JJ> allocating the return SEXP before RNGScope > JJ> > JJ> RNGScope rngScope; > JJ> > JJ> // do your thing > JJ> > JJ> > JJ> return vec; JJ, care to explain this ? I don't follow. > OK thanks. That's definitely worth knowing. Might be a cause for trouble for > others too, especially since misuse (i.e. other ordering) doesn't seem to show > any effects in many cases. > > DE> RNGScope is not for for seed setting, it is for RNG 'state sanity'. See > DE> Section 6.3 of 'Writing R Extensions' -- worst case you can just call > DE> GetRNGstate() and PutRNGstate() by hand. Though we never had to > DE> recommend that yet. > > Yep, sorry for the misuse of language. And I do understand going back to > GetRNGstate() and PutRNGstate() is a bit old school; but I can definitely > confirm that it seems to be safer than resorting do the > constructor/destuctor magic. Compiler/Destructor is not magic. It is determinism. That's like feature #1 of C++. And BTW it is definitely safer than any manual handling. _______________________________________________ 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