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» внутри общественного работника

0

Решение

<random>заголовок в целом и std::mt19337 в частности, доступны только с C ++ 11 и выше. И если вы хотите использовать C ++ 11 в Windows в контексте пакета R, вы должны добавить

CXX_STD = CXX11

в src/Makevars.win (Источник: Написание R расширений). На других платформах часто обходятся без этого, так как там используются новые компиляторы, которые по умолчанию используют C ++ 11.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]