[Rcpp-devel] strange bool conversion?

romain at r-enthusiasts.com romain at r-enthusiasts.com
Mon Dec 13 17:38:04 CET 2010


Hi, 

Thanks. This is not a feature. 

I think this is about the const keyword and will attempt to fix it later. 

Romain



Le 13 déc. 2010 à 05:30 PM, Daniel Sabanés Bové<daniel.sabanesbove at ifspm.uzh.ch> a écrit :

> Hi,
> 
> I have just discovered an extremely strange behaviour in conversion of
> an R logical to a C++ bool. Consider the minimal example:
> 
> --- snip ---
> 
> library(Rcpp)
> library(inline)
> 
> ## this compiles and loads fine, but is wrong:
> wrong <- cxxfunction(signature(x="list") , '
>        List input(x);
>        const bool a = input[0];
>        return wrap(a);
>        ' , plugin = "Rcpp")
> 
> wrong(list(TRUE))
> wrong(list(FALSE))
> 
> ## this is correct:
> correct <- cxxfunction(signature(x="list") , '
>        List input(x);
>        const bool a = as<bool>(input[0]);
>        return wrap(a);
>        ' , plugin = "Rcpp")
> 
> correct(list(TRUE))
> correct(list(FALSE))
> 
> --- snap ----
> 
> In Rcpp 0.8.9 wrong(list(FALSE)) == TRUE, which is quite surprising to
> the user...
> Sorry if this already a known feature, but then I would be curious if
> this behaviour is really wished?
> 
> Thanks in advance,
> best regards
> 
> Daniel
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel


More information about the Rcpp-devel mailing list