Index: inst/include/Rcpp/module/Module_generated_class_constructor.h =================================================================== --- inst/include/Rcpp/module/Module_generated_class_constructor.h (revision 2695) +++ inst/include/Rcpp/module/Module_generated_class_constructor.h (working copy) @@ -28,6 +28,20 @@ typename U2, typename U3, typename U4, + typename U5, + typename U6 + > + self& constructor( const char* docstring = 0, ValidConstructor valid = &yes_arity<7> ){ + AddConstructor( new Constructor_7 , valid, docstring ) ; + return *this ; + } + + template < + typename U0, + typename U1, + typename U2, + typename U3, + typename U4, typename U5 > self& constructor( const char* docstring = 0, ValidConstructor valid = &yes_arity<6> ){ Index: inst/include/Rcpp/module/Module_generated_Constructor.h =================================================================== --- inst/include/Rcpp/module/Module_generated_Constructor.h (revision 2695) +++ inst/include/Rcpp/module/Module_generated_Constructor.h (working copy) @@ -126,5 +126,23 @@ return ctor_signature(class_name) ; } } ; +template +class Constructor_7 : public Constructor_Base{ + virtual Class* get_new( SEXP* args, int nargs ){ + return new Class( + as(args[0]), + as(args[1]), + as(args[2]), + as(args[3]), + as(args[4]), + as(args[5]), + as(args[6]) + ) ; + } + virtual int nargs(){ return 7 ; } + virtual const char* signature(const std::string& class_name ){ + return ctor_signature(class_name) ; + } +} ; #endif Index: inst/include/Rcpp/module/Module_generated_ctor_signature.h =================================================================== --- inst/include/Rcpp/module/Module_generated_ctor_signature.h (revision 2695) +++ inst/include/Rcpp/module/Module_generated_ctor_signature.h (working copy) @@ -97,4 +97,20 @@ return s.c_str() ; } +template +inline const char* ctor_signature( const std::string& classname ){ + std::string s( classname ) ; + s += "(" ; + s += get_return_type() ; + s += ", " ; s+= get_return_type() ; + s += ", " ; s+= get_return_type() ; + s += ", " ; s+= get_return_type() ; + s += ", " ; s+= get_return_type() ; + s += ", " ; s+= get_return_type() ; + s += ", " ; s+= get_return_type() ; + s += ")" ; + return s.c_str() ; +} + + #endif