[Rcpp-devel] object '.pointer' not found
Andrew Redd
amredd at gmail.com
Thu Dec 2 22:27:31 CET 2010
I realized that one again I responded off list. But yes my problem was
fixed. I found the hard way that classes now require explicit constructors.
Thanks,
Andrew
On Thu, Dec 2, 2010 at 1:42 PM, Romain Francois <romain at r-enthusiasts.com>wrote:
> Hmm. Actually my toy example was not right (it is getting late in france, I
> think I've had enough screen time for one day). This works for me :
>
> require(inline)
> require(Rcpp)
> fx <- cxxfunction(, "", includes = '
>
> class Foo {
> public:
> Foo() : x(2.0){}
> Foo(double x_) : x(x_){}
> double foo(){ return 0.0 ; }
>
> private:
> double x ;
> } ;
>
> RCPP_MODULE(bar){
>
> class_<Foo>("Foo")
> .constructor()
> .constructor<double>()
> .method( "foo", &Foo::foo ) ;
> }
>
>
> ', plugin = "Rcpp" )
> m <- Module( "bar", getDynLib(fx), mustStart = TRUE )
> Foo <- m$Foo
> new( Foo )
>
> Does the example work for you ?
>
> Romain
>
> Le 02/12/10 21:34, Romain Francois a écrit :
>
> Apparently, creation of the object works, but the show method for the
>> class has a problem, so you should be able to do:
>>
>> obj <- new(Module("GPU_BAYES",'gpuBayes')$data3)
>>
>> Can you confirm ? (I only tried on a toy example)
>>
>> but then when you print the object, it bombs out. I'm narrowing this
>> down, probably because of some oversight in the initialize method.
>>
>> Romain
>>
>> Le 02/12/10 20:36, Romain Francois a écrit :
>>
>>> That's odd that it only happens for your package. Guess #2 is that it
>>> might be a namespace issue. Can you try adding:
>>>
>>> import(methods)
>>> import(Rcpp)
>>>
>>> to your NAMESPACE file
>>>
>>> Romain
>>>
>>> Le 02/12/10 20:31, Andrew Redd a écrit :
>>>
>>>> That exposes the data3 class, but does not solve the pointer problem.
>>>>
>>>> On Thu, Dec 2, 2010 at 12:24 PM, Romain Francois
>>>> <romain at r-enthusiasts.com <mailto:romain at r-enthusiasts.com>> wrote:
>>>>
>>>> Le 02/12/10 20:05, Andrew Redd a écrit :
>>>>
>>>> I updated to the new Rcpp 0.8.9 then added a new function to my
>>>> class.
>>>> It compiles fine the Module is found and loads the class
>>>> definition
>>>> seems to be there, but when I try to create a instance of the
>>>> class I
>>>> get the error:
>>>>
>>>> R> new(Module("GPU_BAYES",'gpuBayes')$data3)
>>>> Error in get(".pointer", envir = env) : object '.pointer' not found
>>>>
>>>> Any Ideas what might be wrong here? That's a rather vague
>>>> error. The
>>>> traceback gives
>>>>
>>>> > traceback()
>>>> 3: get(".pointer", envir = env)
>>>> 2: function (object)
>>>> standardGeneric("show")(<S4 object of class "Rcpp_data3">)
>>>> 1: function (object)
>>>> standardGeneric("show")(<S4 object of class "Rcpp_data3">)
>>>>
>>>>
>>>> Thanks,
>>>> Andrew
>>>>
>>>>
>>>> In the Rcpp-modules vignette, that has been considerably updated in
>>>> the last version of Rcpp (part of the 8661 new lines of code), we
>>>> suggest to have this in your .onLoad:
>>>>
>>>> # grab the namespace
>>>> NAMESPACE <- environment()
>>>>
>>>> .onLoad <- function(libname, pkgname){
>>>> # load the module and store it in our namespace
>>>> yada <- Module( "GPU_BAYES" )
>>>> populate( yada, NAMESPACE )
>>>> }
>>>>
>>>> and the "data3" class is directly exposed in the namespace of your
>>>> package, so that you can do:
>>>>
>>>> new( data3 )
>>>>
>>>> Does that work ?
>>>>
>>>>
>>>> Otherwise, maybe you can try adding mustStart = TRUE to the call to
>>>> Module.
>>>>
>>>
>
> --
> Romain Francois
> Professional R Enthusiast
> +33(0) 6 28 91 30 30
> http://romainfrancois.blog.free.fr
> |- http://bit.ly/hovakS : RcppGSL initial release
> |- http://bit.ly/iaxTdO : parser 0.0-12
> `- http://bit.ly/gnCl01 : Rcpp 0.8.9
>
>
> _______________________________________________
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20101202/82993f65/attachment.htm>
More information about the Rcpp-devel
mailing list