[Rcpp-devel] Constructor for templated Rcpp::Matrix class from Rcpp::Dimension fails

romain at r-enthusiasts.com romain at r-enthusiasts.com
Thu Jun 2 12:10:12 CEST 2011


Thanks. 

Making init protected instead of private in Vector.h solved it for me. 

I cant commit the fix from the eurostar.

Romain



Le 1 juin 2011 à 21:36, Douglas Bates <bates at stat.wisc.edu> a écrit :

> I am developing classes for sparse matrices with an Rcpp interface that includes
> 
>    Rcpp::Dimension dim() const {return Rcpp::Dimension(nr(), nc());}
> 
>    Rcpp::NumericMatrix     asmatrix() const;
> 
> The implementation of the asmatrix method begins with
> 
>    Rcpp::NumericMatrix ans(dim());
> 
> which is a public constructor for the Rcpp::Matrix template but this
> fails stating
> 
> 
> In file included from
> /home/bates/R/x86_64-unknown-linux-gnu-library/2.14/Rcpp/include/Rcpp/Vector.h:58:0,
>                 from
> /home/bates/R/x86_64-unknown-linux-gnu-library/2.14/Rcpp/include/Rcpp.h:42,
>                 from RcppSparse.h:1,
>                 from Module.cpp:1:
> /home/bates/R/x86_64-unknown-linux-gnu-library/2.14/Rcpp/include/Rcpp/vector/Vector.h:
> In constructor ‘Rcpp::Matrix<RTYPE>::Matrix(const Rcpp::Dimension&)
> [with int RTYPE = 14]’:
> RcppSparse.h:110:31:   instantiated from here
> /home/bates/R/x86_64-unknown-linux-gnu-library/2.14/Rcpp/include/Rcpp/vector/Vector.h:640:7:
> error: ‘void Rcpp::Vector<RTYPE>::init() [with int RTYPE = 14]’ is
> private
> /home/bates/R/x86_64-unknown-linux-gnu-library/2.14/Rcpp/include/Rcpp/vector/Matrix.h:49:3:
> error: within this context
> make: *** [Module.o] Error 1
> 
> I can program around this problem by generating the
> Rcpp::NumericMatrix from the number of rows and number of columns but
> I would class the behavior of the constructor mentioned earlier as at
> least an "infelicity" (to use Bill Venables' term).
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel


More information about the Rcpp-devel mailing list