std::mt19937 в Rcpp
Эта проблема возникла из-за тестирования моего пакета R (RcppParallel) в Windows через win-builder-r, так как для моего Mac проблем нет.
"error: 'mt19937' is not a member of 'std'"
Кроме того, эта ошибка появляется первой:
D: /Compiler/gcc-4.9.3/mingw_32/i686-w64-mingw32/include/C++ / bits / C++0x_warning.h:32:2: error: #error Этот файл требует поддержки компилятора и библиотеки для ISO Стандарт C++ 2011. Эта поддержка в настоящее время является экспериментальной и должна быть включена с помощью опций компилятора -std= C++11 или -std=gnu++11.
Минимальный пример можно найти в этом предыдущем посте, используйте последний: вызов функции 'mypackage' в public.
1 ответ
<random>
заголовок в целом и std::mt19337
в частности, доступны только с C++11 и выше. И если вы хотите использовать C++11 в Windows в контексте пакета R, вы должны добавить
CXX_STD = CXX11
в src/Makevars.win
(Источник: написание R расширений). На других платформах часто обходятся без этого, так как там используются новые компиляторы, которые по умолчанию используют C++11.