2014-04-12 69 views
4

最新版本的Rtools(3.1)似乎沒有包含支持C++ 11的g ++版本。這有什麼特別的原因嗎?爲什麼Rtools 3.1不支持Windows上的C++ 11

+0

在R手冊中有關於使用C++ 11與R(包括Windows)的討論:http://cran.r-project.org/doc/manuals/r-devel/R-exts.html#使用-c_002b_002b11-code –

回答

10

寶貴的志願者時間,也許?

Rtools使用g ++ 4.6.2。對於R使用來說,這是完全正確的,因爲R是一個C程序。

現在,我們很多人都使用C++和R(並且根據Rcpp標籤判斷,你也是這樣),如果你想使用僅在g ++ 4.7,4.8,AFAIK中可用的功能尚未發佈4.9,或者當您實際上僅限於Windows時,其版本號爲

在Linux或OS X上,情況會稍微簡單一些(雖然OS X在10.9發行版後有自己的問題,但情況正在好轉)。

有人需要自願提供更好/更新的MinGW,或支付某人提供它。如果您查看舊版本公告,Rtools編譯器不會經常升級。從我所知道的情況來看,只有一名R Core成員在這方面工作。雖然特定的R內核成員對C++和Windows上g ++編譯器的狀態非常瞭解,但他也主要是C程序員......

+0

對於R 3.1.0的特立獨行二進制版本,OSX是執行R和C++ 11的最佳平臺。它只是工作。 –

+0

正如我所說的,Linux也傾向於工作。在g ++ 4.8和當前的clang之間做出選擇並不會傷害任何一方。但是,這個問題是關於Windows的... –

10

我將在此上工作。在Windows上允許使用C++ 11的工具可能會阻止Rcpp11被廣泛採用。我一定會喜歡人們開始使用Rcpp11。我在下週爲這個(和其他一些東西)購買了一個windows系統。

總之,我們需要一個基於gcc 4.8系列的Rtools版本。第一步是證明這個版本從源代碼成功構建了R。

可能有幫助的一件事就是開始使用C++ 11發佈包到CRAN。

+1

我們在不久的將來會得到Rcpp11文檔嗎?這將是編寫軟件包的一大誘因。 – THK

0

Rtools(gcc 4.6.3)附帶的編譯器足夠運行Rcpp11的開發版本的測試套件,該套件非常廣泛地使用C++ 11的功能。

有關不支持的功能的詳細信息可用here,但支持的子集已經感覺像C++ 11。只有幾件事情我不得不妥協(委託構造函數和模板別名)。他們使代碼更好,但現在我們可以沒有他們。