@@ -349,38 +349,8 @@ convert_cpp_default_to_r <- function(cpp_default) {
349349
350350# Helper function to generate type checking/coercion code
351351generate_type_check <- function (param_name , param_type ) {
352- # Map C++ types to R coercion functions
353- if (param_type == " int" || grepl(" ^int[[:space:]]*$" , param_type )) {
354- return (glue :: glue(" {param_name} <- as.integer({param_name})" ))
355- } else if (param_type == " double" || grepl(" ^double[[:space:]]*$" , param_type )) {
356- return (glue :: glue(" {param_name} <- as.numeric({param_name})" ))
357- } else if (param_type == " bool" || grepl(" ^bool[[:space:]]*$" , param_type )) {
358- return (glue :: glue(" {param_name} <- as.logical({param_name})" ))
359- } else if (grepl(" string" , param_type , ignore.case = TRUE )) {
360- return (glue :: glue(" {param_name} <- as.character({param_name})" ))
361- }
362-
363- # Handle cpp4r matrix types - set proper storage mode
364- if (grepl(" integers_matrix" , param_type )) {
365- return (glue :: glue(" storage.mode({param_name}) <- \" integer\" " ))
366- } else if (grepl(" doubles_matrix" , param_type )) {
367- return (glue :: glue(" storage.mode({param_name}) <- \" double\" " ))
368- } else if (grepl(" logicals_matrix" , param_type )) {
369- return (glue :: glue(" storage.mode({param_name}) <- \" logical\" " ))
370- }
371-
372- # Handle cpp4r vector types - set proper storage mode as well
373- if (grepl(" ^integers[^_]" , param_type ) || param_type == " integers" ) {
374- return (glue :: glue(" storage.mode({param_name}) <- \" integer\" " ))
375- } else if (grepl(" ^doubles[^_]" , param_type ) || param_type == " doubles" ) {
376- return (glue :: glue(" storage.mode({param_name}) <- \" double\" " ))
377- } else if (grepl(" ^logicals[^_]" , param_type ) || param_type == " logicals" ) {
378- return (glue :: glue(" storage.mode({param_name}) <- \" logical\" " ))
379- } else if (grepl(" ^strings[^_]" , param_type ) || param_type == " strings" ) {
380- return (glue :: glue(" storage.mode({param_name}) <- \" character\" " ))
381- }
382-
383- # For other cpp4r types, don't add checks (they handle conversion internally)
352+ # No type checking or coercion - match cpp11's approach
353+ # The C++ side handles all type validation and conversion
384354 return (" " )
385355}
386356
0 commit comments