2014-10-15 4 views
0

Я пытаюсь вернуть карту с C++ на r. Мой код в C++ заключается в следующем (как найдено в https://github.com/RcppCore/Rcpp/blob/master/inst/unitTests/cpp/wrap.cpp):Rcpp map return

#include <Rcpp.h> 

using namespace Rcpp; 

// [[Rcpp::export]] 
IntegerVector map_string_int(){ 
    std::map< std::string, int > m ; 
    m["b"] = 100; 
    m["a"] = 200; 
    m["c"] = 300; 
    return wrap(m); 
} 

Мой г код следующим образом:

require(Rcpp) 
Rcpp::sourceCpp(test.cpp') 
map_string_int() 

Хотя код компилируется без каких-либо ошибок, когда я вызвать функцию, мой сеанс r немедленно прекращается. Любые идеи?

[EDIT]

R version 3.1.1 (2014-07-10) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=Portuguese_Portugal.1252 
[2] LC_CTYPE=Portuguese_Portugal.1252 
[3] LC_MONETARY=Portuguese_Portugal.1252 
[4] LC_NUMERIC=C       
[5] LC_TIME=Portuguese_Portugal.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets 
[6] methods base  

other attached packages: 
[1] Rcpp_0.11.3 

loaded via a namespace (and not attached): 
[1] tools_3.1.1 
+1

Этот код работает для меня без проблем. Можете ли вы добавить вывод 'sessionInfo()'? – nrussell

+0

Добавлен sessionInfo()! – SwatchPuppy

+1

Это странно - он работает для меня на двух разных платформах: «R версия 3.0.2/Rcpp 0.11.2/64-разрядная версия ubuntu-linux' и« R 3.1.1/Rcpp 0.11.3/64-bit redhat- linux'. Я не уверен, в чем проблема, но я бы сказал, если вы не получите ответа здесь, вы должны перенести свой вопрос в [рассылку Rcpp list] (http: //lists.r-forge.r-project. орг/почтальон/listinfo/rcpp-Devel). – nrussell

ответ

0

Решил попробовать другой компилятор и это сработало!

Я установил компилятор Rtools (http://cran.r-project.org/bin/windows/Rtools/), после которого только что изменил системный путь, чтобы указать на папки bin в папке установки Rtools.

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