[Rcpp-devel] strange bool conversion?
    Daniel Sabanés Bové 
    daniel.sabanesbove at ifspm.uzh.ch
       
    Mon Dec 13 17:30:37 CET 2010
    
    
  
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
    
    
More information about the Rcpp-devel
mailing list