我发现在使用和不使用-std = c ++ 0x编译的Rcpp之间存在奇怪的不一致.
考虑表达式
Function data_frame("data.frame");
GenericVector a;
a.push_back("17");
return data_frame(a, _["stringsAsFactors"]=0);
Run Code Online (Sandbox Code Playgroud)
(编辑注意:在Rcpp中强制到DataFrame实际上会向下调用R函数,但是不允许用户设置该标志.)
在"旧"C++(w/o -std = c ++ 0x set)中,此代码有效.在现代C++(w/-std = c ++ 0x set)中,这失败了,说"不能强制类"pairlist"进入data.frame".
显然,这不是世界末日:我只是不使用任何新功能.但是,我承认完全不知道是什么导致了这种差异,以及如何在不抛弃C++ 11的情况下解决它.任何想法,任何人?