[R-pkg-devel] compileAttributes() and 'using namespace' directives

Georgi Boshnakov georgi.boshnakov at manchester.ac.uk
Tue Dec 8 15:37:45 CET 2015


With a collaborator we are working on a package which uses Rcpp and RcppArmadillo.   Our *.cpp files  start with something like

// [[Rcpp::depends(RcppArmadillo)]]

#include <iostream>
#include "RcppArmadillo.h"

using namespace arma;
using namespace std;
using namespace Rcpp;

Running compileAttributes()  generates an RcppExports.cpp which gives errors unless we manually  add 

using namespace arma;

when everything is fine. Is this outside the scope of the automatic facilities?  

compileAttributes()   puts the corresponding directive for the Rcpp namespace but even after reading every possible source I could not figure out how to make this happen for the "arma" namespace. 

The same problem appears when using devtools::test() which exits with an error if RcppExports.cpp is not generated by it but if I remove that file, my understanding is that devtools::test() calls compileAttributes()  with the effect of producing invalid file and with little indication for the users what has gone wrong, besides the message "Error: Command failed (1)".


Dr Georgi Boshnakov               tel: (+44) (0)161 306 3684
School of Mathematics             fax: (+44) (0)161 306 3669
Alan Turing Building 1.125
The University of Manchester      email: Georgi.Boshnakov at manchester.ac.uk
Oxford Road
Manchester M13 9PL

More information about the R-package-devel mailing list