On 17 September 2012 at 15:44, Rodney Sparapani wrote:
| On 09/17/2012 03:02 PM, Dirk Eddelbuettel wrote:
| > You are once again tripping over as<>() and wrap(). You_must_ use as<int>
| > as the following working example:
|
| Right. Is there a rule of thumb to determine when we need as<>()?
| I have other examples where it seems to work without it, but I
| can't seem to see a pattern. Or should you just use it all
| of the time whether it is needed or not? Thanks!
Heuristically speaking:
-- always use it for atomistic C/C++ types: int, double, bool, ...
-- rely on SEXP types to corresponding Rcpp types happening automatically
due to implicit use of as<>(), particularly vector / matrix types works:
IntegerVector, NumericMatrix, List, Environment, Function, XPtr, ...
And the same is true for wrap: for sure with int, double, ...; generally not
need for core Rcpp types wrapping a SEXP.
If it fails, the compiler usually tells you. I have not been bitten by
silent failure like the one you reported. But then I also do not try to cram
multiple assignments into a single line...
Dirk
--
Dirk Eddelbuettel | [email protected] | http://dirk.eddelbuettel.com
_______________________________________________
Rcpp-devel mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel