[Rcpp-devel] questions Rcpp

Dirk Eddelbuettel edd at debian.org
Thu Sep 13 22:55:58 CEST 2018


On 13 September 2018 at 08:51, Qiang Kou wrote:
| Hi, Mounia,
| 
| In Rcpp, using std::vector is preferred.

Building on what Qiang said: If your array is a simple double[] then you can
switch to std::vector<double> easily as aligning your array with the internal
array. (Ditto for most other arrays of base types.)

Or conversely, your can use Rcpp and transfer data from R down to C++ code
using a std::vector<double> and then access the address of the initial
element for your pointer.  But the better approach is to use std::vector<>
(Or our Rcpp::NumericVector).

One reason is that Rcpp uses the .Call() interface to R, and it does _not_
support plain C pointers.  Only the older (and not recommended anymore) .C()
interface does.  But then you have to give up all of Rcpp as well ...

| It is still possible to use pointers, however, I am afraid you need to
| write your "as" and "wrap" by yourself. You can find how to develop them in
| our documents.

And as<>() and wrap() are really intended for more complex data structures
and not for pointers to atomistic C types. And yes, you would have work to do
for new types.

Hope this helps, Dirk
 
| Best,
| 
| Qiang Kou
| 
| On Thu, Sep 13, 2018 at 4:15 AM Mounia ZAOUCHE <
| mounia.zaouche at agroparistech.fr> wrote:
| 
| >
| > Dear all.
| >
| > I write C++ programs and I'm currently trying to interface them with R.
| >
| > I have two issues :
| >
| > Is it possible to interface a function which has an argument that is a
| > pointer (standing for an array) ?
| >
| > I also wrote a function whose aim is to allocate (and fill) an array of
| > values. In this purpose, this function takes as an argument the address of
| > the array to be allocated and is thus typed as a pointer of pointer.
| > Is it possible to handle such a type and to allocate the required memory
| > inside this function interfaced in R?
| >
| > Thank you in advance.
| >
| > Mounia Zaouche.
| >
| > _______________________________________________
| > 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
| _______________________________________________
| 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

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org


More information about the Rcpp-devel mailing list