Hi all, I have been trying to make an R function to call my C++ simulation program in this way: ```c++ // [[Rcpp::plugins(cpp14)]] #include <Rcpp.h> #include <mylib.hpp> // [[Rcpp::export]] std::string run_simulation(Rcpp::CharacterVector args=Rcpp::CharacterVector::create()) { auto vs_args = Rcpp::as<std::vector<std::string>>(args); mylib::Simulation sim(vs_args); sim.run(); return sim.results(); } ```
The class `Simulation` parses arguments with `boost::program_options` and is implemented in `libmylib.dylib`, which can be linked with `PKG_LIBS = -lmylib`. Both `devtools::check()` and independent `Rcpp::sourceCpp()` can successfully build the function `run_simulation()`. It runs perfectly as I intended **only if it is the first call**. The second time I call `run_simulation('-v')`, I get the following error: ``` Error: option '-v' is ambiguous and matches different versions of '--verbose' ``` Other options like `-h` or `--mutation=0` raise the same error. It indicates that every option is re-defined after the first call (maybe?). Calling without any argument is always OK, and an executable `a.out` built with `main.cpp -lmylib` has no problem. I guess the key is how C++ objects are cached in R environments. Is this a bug in Rcpp? Or am I missing something? Thanks, -- Watal M. Iwasaki / 岩嵜 航 SOKENDAI, Graduate University for Advanced Studies, Hayama, Kanagawa 240-0193, Japan +81-46-858-1576 https://heavywatal.github.io/
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel