Dear Rcpp::Users and Rcpp::Devels,

I would like to understand a certain behaviour of my code I encountered lately. 

I am working with CharacterVector and the following behaviour occurred:

void test1 (Rcpp::CharacterVector &charv)
{
        Rprintf("test1: %s\n", (char*) charv(0));
}

void test2 (const Rcpp::CharacterVector &str)
{
        Rprintf("test2: %s\n", (char*) charv(0));
}

Using a string like "2013-05-04 20:23:21" for the Rcpp::CharacterVector gives 
the following outputs:

test1: 2013-05-04 20:23:21

test2:  `

This does also not change if I use a cast to const char* in test2. I tried 
something similar with strings and printing the c_str() of them, there the 
'const' keyword does not make a difference - it always prints the correct 
string.

Is this something specific to the Rcpp::CharacterVector, that uses a 
string_proxy for its elements returned by the operator ()? Is there a way to 
use const Rcpp::CharacterVector and get the behaviour of test1? 


Best

Simon
 
_______________________________________________
Rcpp-devel mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to