Hello, I have run a couple more tests.
I commented out: #include <fstream> I then got the same error for #include <queue>, i.e: In file included from /usr/include/c++/4.5/queue:65:0, from /home/simon/College/PackageOne/src/BZip/BZip.h:11, from file21028e73.cpp:37: /usr/include/c++/4.5/bits/stl_queue.h: In function ‘SEXPREC* file21028e73(SEXPREC*, SEXPREC*)’: /usr/include/c++/4.5/bits/stl_queue.h:63:1: error: expected ‘=’ before ‘__attribute__’ /usr/include/c++/4.5/bits/stl_queue.h:63:1: error: expected identifier before ‘__attribute__’ /usr/include/c++/4.5/bits/stl_queue.h:63:1: error: expected ‘;’ before ‘__attribute__’ /usr/include/c++/4.5/bits/stl_queue.h:63:1: error: expected primary-expression before ‘__attribute__’ /usr/include/c++/4.5/bits/stl_queue.h:63:1: error: expected ‘;’ before ‘__attribute__’ I checked stl_queue.h, line 62: GLIBCXX_BEGIN_NAMESPACE(std). To be safe, I wrote a couple of quick codes that use the relevant includes, and these work fine when using g++ from the terminal, so I do not think that it is my c++ sources as such that are causing the problem, as far as I can ascertain myself. Thanks again for all your help. On Tue, Oct 11, 2011 at 10:10 AM, Simon Fuller <simonfull...@gmail.com>wrote: > Hello Davor, > > Yes, I think - I have: > #ifndef HEADERNAME_IN_CAPS > #define HEADERNAME_IN_CAPS 1 > (..code..) > #endif > for all my headers. > > As far as I can tell the problem arises when fstream includes > codecvt.h, which calls, on line 42: > > _GLIBCXX_BEGIN_NAMESPACE(std) > > I don't think this pertains to my own header includes, but I could very > well be wrong. > > Thanks, > > Simon > > > > On Tue, Oct 11, 2011 at 5:27 AM, Davor Cubranic <cubra...@stat.ubc.ca>wrote: > >> Hi Simon, >> >> Are you wrapping your header file with an #ifndef to prevent it from being >> included multiple times? >> >> Davor >> >> >> On October 10, 2011 03:01:33 PM Simon Fuller wrote: >> > Hello, >> > >> > I am getting some problems further down the line. It seems to happen >> when I >> > am including a std header in my own class, and when it itself includes a >> > header. Which suggests the problem is not with including headers in >> > general. >> > >> > When it is reading my header, it gets this error in fstream: >> > >> > In file included from /usr/include/c++/4.5/fstream:42:0, >> > from >> > /home/simon/College/PackageOne/src/MyClass/MyClass.h:6, >> > from file8ffc305.cpp:37: >> > /usr/include/c++/4.5/bits/codecvt.h: In function ‘SEXPREC* >> > file8ffc305(SEXPREC*, SEXPREC*)’: >> > /usr/include/c++/4.5/bits/codecvt.h:42:1: error: expected ‘=’ before >> > ‘__attribute__’ >> > /usr/include/c++/4.5/bits/codecvt.h:42:1: error: expected identifier >> before >> > ‘__attribute__’ >> > /usr/include/c++/4.5/bits/codecvt.h:42:1: error: expected ‘;’ before >> > ‘__attribute__’ >> > /usr/include/c++/4.5/bits/codecvt.h:42:1: error: expected >> > primary-expression before ‘__attribute__’ >> > /usr/include/c++/4.5/bits/codecvt.h:42:1: error: expected ‘;’ before >> > ‘__attribute__’ >> > >> > In fstream, line 42 is indeed: #include <bits/codecvt.h> >> > >> > I checked /usr/include/c++/4.5/bits/codecvt.h:42:1: >> > >> > and this is line 42 of codecvt.h: >> > >> > _GLIBCXX_BEGIN_NAMESPACE(std) >> > >> > I googled this function, and I am wondering if it might be a >> compatibility >> > issue, as this sometimes seems to be cited in this regard in forums. I >> > really do not know myself. Has anyone any suggestions? >> > >> > Thanks, >> > >> > Simon >> > >> > >> > >> > >> > On Mon, Oct 10, 2011 at 11:09 AM, Simon Fuller >> > <simonfull...@gmail.com>wrote:h >> > >> > > Hello, >> > > >> > > I have just joined the mailing list. >> > > >> > > I was hoping you might be able to help me with a question. >> > > >> > > I am new to Rcpp, have some experience with both R and C++, but very >> > > little experience with integrating languages. >> > > >> > > I hope to use Rcpp to develop code over the next few years. However, >> to >> > > begin with, I have some preexisting C++ classes that I would like to >> make >> > > available to R. >> > > >> > > I have read the documentation that I can find, but I do not know which >> is >> > > the best approach to take. >> > > >> > > I only, in principle, need *one method* to interact with the classes - >> > > there then follows a fairly arduous process using different tree >> > > structures each of which have aggregate classes, but only a single >> > > double needs to be returned to R. >> > > >> > > I was therefore hoping to simply call a C++ wrapper function in-line, >> > > remotely, which in turn called my classes, but that does not work. I >> get >> > > an: "expected unqualified-id before ‘extern’ " error after my >> includes, >> > > at: RcppExport SEXP.. at the start of my method declaration. (I can >> > > post code if this approach is not a complete dead end) >> > > >> > > So my two questions are: is there a quick way of prototyping this? >> i.e. >> > > to get R to invoke my classes through an rcpp intermediary. >> > > >> > > If there is not a quick way to do this, what is the best approach? Do >> I >> > > need to, and if so how do I, make my classes accessible to Rcpp. >> Because >> > > my whole hope here is to use preexisting code as swiftly as possible, >> > > 'easiest' and 'quickest' are almost synonyms for 'best' in my >> question. >> > > >> > > If someone could point me in the direction of some example code where >> > > Rcpp invokes user classes this would be great. >> > > >> > > My apologies if my question has been covered before, but I would >> really >> > > appreciate some advice on what is and is not possible, and some >> strategic >> > > advice on the best (easiest and quickest) approach. >> > > >> > > Thank you for your help. It is deeply appreciated. >> > > >> > > Simon >> > >
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel