[Rcpp-devel] "expecting a string" and not finding it in a CharacterVector

Dirk Eddelbuettel edd at debian.org
Thu Feb 7 19:43:00 CET 2013

Davor, Kevin,

Allow to get into this intra-Vancouver exchange as I too dislike the sound of
"but this used to work"....  

A simple modifcation (see below) seems to do the trick:

R> sourceCpp("/tmp/davor.cpp")
R> getString(c("The", "quick", "brown", "fox"), 2)
[1] "brown"
R> getString(c("The", "quick", "brown", "fox"), 0)
[1] "The"

Here I do in fact go via char*. I too have the feeling that that didn't use
to be necessary --- but then "fear not" as we are currently getting better
string classes in Rcpp thanks to Romain (and to Hadley for funding).  So I
would just sit tight and wait things.  And maybe send us a new unit test for
two as the dozen or so we have for CharacterVector didn't catch this.

Dirk (hoping he understands what Davor was after in the first place...)

#include <Rcpp.h>

using namespace Rcpp;

// [[Rcpp::export]]
std::string getString(CharacterVector cv, int pos) {
  char *c = cv[pos];
  std::string s(c);
  return s;

Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com  

More information about the Rcpp-devel mailing list