How to use the varargs functions of the R language, as is the case of the optim function?
Consider the code below where I want to maximize the log-likelihood function verossimilhanca:
#include <Rcpp.h>
#include <RInside.h>
using namespace Rcpp;
// [[Rcpp::export]]
double verossimilhanca(Function pdf, NumericVector par, NumericVector x){
  NumericVector log_result = log(pdf(par,x));
  double soma =0;
  for(int i = 0; i < log_result.size(); i++){
    soma += log_result[i];
  }
  return -1*soma;
} 
// [[Rcpp::export]]
List bootC(NumericVector x, NumericVector init_val){ 
  Rcpp::Environment stats("package:stats"); 
  Rcpp::Function optim = stats["optim"];    
  R["my_objective_fn"] = Rcpp::InternalFunction(&verossimilhanca);
  Rcpp::List opt_results = optim(Rcpp::_["par"]  = init_val,
                                 Rcpp::_["fn"]     = Rcpp::InternalFunction(&verossimilhanca),
                                 Rcpp::_["method"] = "BFGS", x);
  return opt_results;
  // x is a data vetor.
}
In summary, I have a log-likelihood function and I want to maximize this function and x is my data set. I know that RInside allows me to create instances of R in C++ but I want to solve this problem only by using the Rcpp.h library without resorting to RInside.h.
 
     
    