Skip to content
Back to formatted view

Raw Message

Message-ID: <C9B64BF3.3ADA%sean.mcguffee@gmail.com>
Date: 2011-03-28T18:30:11Z
From: Sean Robert McGuffee
Subject: [Rcpp-devel] error while calling function in loop
In-Reply-To: <19853.62901.409886.524655@max.nulle.part>

RInside R(argc, argv); //this would appear to be a class called RInside
definining a variable called R initialized with argc and argv variables.

To declare it globally, you would need to define it inside a *.cpp file
once, and only once. Usually this is easiest to do at the top of a *.cpp
file that uses it. Then do the same thing in other files that use it, but in
those cases, place the term "extern" in front of the declaration.

Example:

RInside R; //this is a declaration
extern RInside R; //this is a line for another file that lets the compiler
know it is declared in another *.cpp file.

Then inside your main function where you must be to get the argc and argv
variables, you could then initialize the class:
R=RInside(argc,argv);

I haven't ever used this class, and my instructions assume that a default
constructor for RInside is accessible to you. If it were not, then you would
have to make a pointer to it in the global scope and then assign it by
reference:

//outside of all {}'s at the top of a *.cpp file:
RInside *Rptr; //this is a pointer of type RInside declaration
extern RInside *Rptr; //this is a line for another file that lets the
compiler know Rptr is declared in another *.cpp file

//inside main
RInside R(argc, argv);
Rptr=&R;

I hope this helps,

Sean 



On 3/26/11 10:18 AM, "Dirk Eddelbuettel" <edd at debian.org> wrote:

> 
> On 26 March 2011 at 19:06, nandan amar wrote:
> | Ohh Then i sud select reply to all
> | 
> | Thanks Dirk,
> | But RInside R(argc, argv) is not a variable .
> 
> If R is not a variable here, what is it?
> 
> | How can I declare it globally or share its instance.
> | If it is not related to R/Rcpp please leave some related pointer.
> 
> Sorry, but you simply need to read some more about C++ and or
> programming. Google for 'good c++ book'. There is a free one I like at
> 
>    http://www.icce.rug.nl/documents/cplusplus/
> 
> which is also included in Debian and Ubuntu as a package.
> 
> Dirk