Rcpp_Modules:用形式的R参数公开类方法

Rcpp_Modules: exposing class method with formal R arguments

本文关键字:参数 类方法 Modules Rcpp      更新时间:2023-10-16

Rcpp Modules vignette解释了如何通过在自由函数的函数指针后传递Rcpp::List来提供正式的参数规范。是否有任何API为类方法提供命名和/或默认参数?显然,相同的"函数"技术不适用于此:

RCPP_MODULE(TestModule) {
  class_<TestClass>( "TestClass" )
  .constructor()
  .method( "method", &TestClass::method, 
            List::create(_["arg"])) //DOESN'T COMPILE
  ;
}

关于这个主题(这里和这里)有几次讨论,但第一次讨论中提供的解决方案可以归结为使用全局函数,第二次讨论涉及额外的R包装函数层来提供参数规范。有什么巧妙的方法/变通方法吗?

我刚刚玩过它。这个问题对Rcpp模块没有意义:

  • 函数通过签名工作
  • 自变量是签名的一部分,所以无论如何都必须提供它
  • 没有参数的调用(用于测试默认参数)不能作为假定的void签名工作