Считывать переменные из глобальной среды с помощью встроенного Rcpp?

Я следую примеру из вступительной виньетки Rcpp, пытаюсь это сделать с помощью встроенного.

f<-cxxfunction(signature(), plugin="Rcpp", body="
    Environment global = Environment::global_env();
    std::vector<double> vx = global['x'];
")

, но я получаю ошибку компиляции.

file12384509.cpp: In function 'SEXPREC* file12384509()':
file12384509.cpp:31: error: invalid use of incomplete type 'struct SEXPREC'
C:/PROGRA~1/R/R-211~1.1/include/Rinternals.h:333: error: forward declaration of 'struct SEXPREC'
file12384509.cpp:31: error: conversion from 'SEXPREC' to non-scalar type 'std::vector<double, std::allocator<double> >' requested
make: *** [file12384509.o] Error 1

ERROR(s) during compilation: source code errors or compiler configuration errors!

Program source:
  1: // includes from the plugin
  2: 
  3: #include <Rcpp.h>
  4: 
  5: 
  6: #ifndef BEGIN_RCPP
  7: #define BEGIN_RCPP
  8: #endif
  9: 
 10: #ifndef END_RCPP
 11: #define END_RCPP
 12: #endif
 13: 
 14: using namespace Rcpp;
 15: 
 16: 
 17: // user includes
 18: 
 19: 
 20: // declaration
 21: extern "C" {
 22: SEXP file12384509( ) ;
 23: }
 24: 
 25: // definition
 26: 
 27: SEXP file12384509(  ){
 28: BEGIN_RCPP
 29: 
 30: Environment global = Environment::global_env();
 31: std::vector<double> vx = global['x'];
 32: 
 33: END_RCPP
 34: }
 35: 
 36: 
Error in compileCode(f, code, language = language, verbose = verbose) : 
  Compilation ERROR, function(s)/method(s) not created! file12384509.cpp: In function 'SEXPREC* file12384509()':
file12384509.cpp:31: error: invalid use of incomplete type 'struct SEXPREC'
C:/PROGRA~1/R/R-211~1.1/include/Rinternals.h:333: error: forward declaration of 'struct SEXPREC'
file12384509.cpp:31: error: conversion from 'SEXPREC' to non-scalar type 'std::vector<double, std::allocator<double> >' requested
make: *** [file12384509.o] Error 1

Что не так и есть ли способ исправить это? Это просто игрушечный пример, В зависимости от ответа у меня есть более важная сложная проблема.

6
задан Andrew Redd 8 September 2010 в 21:11
поделиться