У меня есть функция Rcpp с необязательным аргументом, который является сроком погашения финансового инструмента.Это может быть дано как строка (например, «2y») или как целое число.Если значение не указано, функция должна использовать целое число по умолчанию.Как установить значение по умолчанию для этого аргумента?
Я определил функцию с аргументом SEXP, код проверяет, является ли это строкой или нет, и в зависимости от этого преобразует этот срок в фактическую дату в дваразличные пути.Однако я не могу установить значение по умолчанию для аргумента SEXP.Кажется, это основной вопрос, но я немного погуглил и ничего не смог найти по этому поводу.
Date CPPConvertDate(Date ParamDate, SEXP MaturityDate = 1) {
Date Result ;
const int type_Matu = TYPEOF(MaturityDate) ;
if (type_Matu == 16){
std::string MaturityDate_string = as<std::string>(MaturityDate) ;
//' DO STUFF
} else {
int MaturityDate_int = as<int>(MaturityDate) ;
//' DO OTHER STUFF
}
return (Result) ;
}
Компилятор говорит мне: «Невозможно инициализировать параметр типа SEXP со значением R типа int», поэтомудовольно ясно, что я не могу использовать 1 значение по умолчанию для MaturityDate.Если возможно, я бы хотел, чтобы у меня не было двух разных функций, одна с аргументами int и другая с аргументом string.