[Rcpp-devel] clang does not like lists with a DataFrame inside?
Ramon Diaz-Uriarte
rdiaz02 at gmail.com
Mon Nov 27 10:43:56 CET 2017
Dear All,
I am trying to pass to C++ an R list that contains a data frame. Using gcc
the following
#############################
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
void withDF(Rcpp::List bl) {
Rcpp::DataFrame df1 = bl["the_df"];
Rcpp::Rcout << " rows are " << df1.size() << std::endl;
}
################
works fine.
Using clang (version 3.8 in a system with Debian, but I think same issues
in Mac with clang 4) I get
f5.cpp:12:19: error: conversion from 'NameProxy' (aka 'generic_name_proxy<19>') to 'Rcpp::DataFrame' (aka
'DataFrame_Impl<PreserveStorage>') is ambiguous
Rcpp::DataFrame df1 = bl["the_df"];
^ ~~~~~~~~~~~~
/home/ramon/Sources/R-3.5.0-73698/library/Rcpp/include/Rcpp/vector/proxy.h:165:3: note: candidate function [with T =
Rcpp::DataFrame_Impl<PreserveStorage>]
operator T() const {
^
/home/ramon/Sources/R-3.5.0-73698/library/Rcpp/include/Rcpp/DataFrame.h:51:9: note: candidate constructor [with T =
Rcpp::internal::generic_name_proxy<19>]
DataFrame_Impl( const T& obj ) ;
^
1 error generated.
/home/ramon/Sources/R-3.5.0-73698/etc/Makeconf:166: recipe for target 'f5.o' failed
make: *** [f5.o] Error 1
Error in sourceCpp("f5.cpp", verbose = TRUE, rebuild = TRUE) :
Error 1 occurred building shared library.
Note that the following, treating the data frame as a list, works fine with
both gcc and clang
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
void withList(Rcpp::List bl) {
Rcpp::List df1 = bl["the_df"];
Rcpp::Rcout << " size is " << df1.size() << std::endl;
Rcpp::IntegerVector c1 = df1["first"];
Rcpp::Rcout << " rows are " << c1.size() << std::endl;
}
Is this bug?
Best,
R.
--
Ramon Diaz-Uriarte
Department of Biochemistry, Lab B-25
Facultad de Medicina
Universidad Autónoma de Madrid
Arzobispo Morcillo, 4
28029 Madrid
Spain
Phone: +34-91-497-2412
Email: rdiaz02 at gmail.com
ramon.diaz at iib.uam.es
http://ligarto.org/rdiaz
More information about the Rcpp-devel
mailing list