2016-09-02 3 views
1

В последнее время я пытаюсь изучить (блестящую) библиотеку Rcpp. Когда я хочу, чтобы экспортировать часть моего C++ кода, AFAIK предлагается использовать н как:Как изменить заголовок включают защитные устройства в интерфейсах Rcpp?

// [[Rcpp::interfaces(r, cpp)]] 
// [[Rcpp::export(name=".mrwr_cpp")]] 
Eigen::VectorXd mrwr_(const Eigen::VectorXd& p0, 
         const Eigen::MatrixXd& W, 
         const double r) 
{ 
    // impl 
} 

В этом примере // [[Rcpp::interfaces(r, cpp)]] бы создать заголовочный файл с именем моего R пакета (позволяет сказать, что этот пакет называется diffusr). Содержание экспортируемого заголовка (diffusr.h) будет выглядеть следующим образом:

// This file was generated by Rcpp::compileAttributes 
// Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 

#ifndef __diffusr_h__ 
#define __diffusr_h__ 

#include "diffusr_RcppExports.h" 

#endif // __diffusr_h__ 

Есть ли способ, чтобы изменить заголовок включить охрану autamatically? Два ведущих "_" может привести к непредсказуемому поведению, если я правильно, и зарезервирован для стандартной библиотеки (What are the rules about using an underscore in a C++ identifier?)

Best, Simon

ответ

3

Кратко:

  • «Вы дон 't ", так как это делается в генераторах кода в Rcpp, поэтому вам нужно будет изменить Rcpp

  • Проверьте главную ветвь на GitHub, соответствующую следующей версии (через неделю или две), как this was recently changed

+0

Ницца, спасибо! Отличное дополнение –

+1

Да. Хотя это не укусило нас за все эти годы, это изменение к лучшему. –

Смежные вопросы