Я ищу совет о том, как написать пакет-обертку для библиотеки GLFW C с использованием Rcpp.
Я уже начал, и мне удалось обернуть несколько простыхфункции из библиотеки GLFW.
Теперь я смотрел на функцию glfwCreateWindow :
GLFWwindow* glfwCreateWindow(int width,
int height,
const char* title,
GLFWmonitor* monitor,
GLFWwindow* share)
Как видно из ее прототипа, он принимает эти аргументы, которыеуказатели на структуры.Поскольку эта функция должна использоваться пользователем, эти объекты также должны быть доступны пользователю в R. Я хотел бы представить эти объекты как объекты, классифицированные как S4.Я прочитал виньетку Rccp на Rcpp Modules , которая выглядела очень многообещающе.Тем не менее, я не совсем уверен, как применить их к структурам C ...?
Из того, что я смог найти:
- Есть такой же вопрос по SO: Как открыть структуру C из библиотеки C для R с помощью Rcpp , однако прошло шесть лет с тех пор, как этот вопрос был опубликован, поэтому мне интересно, было ли какое-либо обновление по этому вопросу?Этот вопрос дополнительно расширен в этой теме: http://lists.r -forge.r-project.org / pipermail / rcpp-devel / 2013-July / 006249.html ;
- Я также нашелэтот пример пакета R, обертывающего библиотеку C в галерее Rcpp: https://gallery.rcpp.org/articles/accessing-xts-api/,, но, к сожалению, только модули доступны с помощью модулей, т. е. структуры C не предоставляются.
Так что мое пониманиесейчас мне нужно использовать макрос RCPP_EXPOSED_CLASS
, но я не мог полностью понять, что он делает.
Вы рекомендуете создавать классы C ++ для всех этих структур C, а затем использовать модули Rcpp для предоставленияих?
Знаете ли вы о пакете, который делает это идиоматическим способом, из которого я мог бы учиться?
Спасибо!
PS.Пожалуйста, не отмечайте этот вопрос как дубликат сразу же, так как, возможно, произошли последние события.