[Rcpp-devel] Module with out default constructor.

Andrew Redd amredd at gmail.com
Thu Oct 28 16:33:56 CEST 2010

I'm taking the approach of the default constructor with an initializer
function.  That seems to be a reasonable workaround.

Oh and BTW I was not using Notepad++ for some reason I was not able to copy
and paste from vim into chrome.  Notepad++ does great indenting although not
quite as good as vim.  I'm right now developing on Ubuntu, since CUDA works
much easier on it.


On Wed, Oct 27, 2010 at 7:36 PM, Romain Francois
<romain at r-enthusiasts.com>wrote:

> Le 27/10/10 12:32, Andrew Redd a écrit :
>  Is it possible with Rcpp Modules to have a class that does not have a
>> default constructor?  Consider this example
>> -----
>> #include <R.h>
>> #include <Rcpp.h>
>> class c1{
>> private:
>> int n;
>> int * x;
>> c1();
>> public:
>> c1(int n):n(n){}
>> int getn(){return n;}
>> };
>> using namespace Rcpp;
>> class_<c1>("c1")
>> .property("n",&c1::getn)
>> ;
>> }
>> -----
>> Here I have a class that I do not want to allow to initialize without
>> specifying n.  Yes it does not do anything but the question is related
>> to a class where constructors and destructors allocate and free special
>> memory.   And Yes I know that this fails on compile since c1() is
>> private. Can Rcpp handle this kind of setup?  If not suggestions about
>> workarounds?
>> thanks,
>> Andrew
> At the moment, classes that are exposed through Rcpp modules require
> default constructors.
> We need to take some inspiration from boost.python again to allow other
> constructors. e.g.
> http://www.boost.org/doc/libs/1_44_0/libs/python/doc/tutorial/doc/html/python/exposing.html#python.constructors
> This has been on our list for some time now. Not sure when we will have
> this. Additional resources are welcome.
> Romain
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20101028/b0e90e66/attachment.htm>

More information about the Rcpp-devel mailing list