[Rcpp-commits] r1547 - pkg/Rcpp pkg/Rcpp/R pkg/Rcpp/inst pkg/Rcpp/inst/include pkg/Rcpp/inst/include/Rcpp pkg/Rcpp/inst/include/Rcpp/generated pkg/Rcpp/man pkg/Rcpp/src scripts

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Wed Jun 16 10:42:07 CEST 2010


Author: romain
Date: 2010-06-16 10:42:07 +0200 (Wed, 16 Jun 2010)
New Revision: 1547

Added:
   pkg/Rcpp/inst/include/Rcpp/InternalFunction.h
   pkg/Rcpp/inst/include/Rcpp/generated/InternalFunction__ctors.h
   pkg/Rcpp/man/CppFunction.Rd
   scripts/generator_InternalFunction.R
Modified:
   pkg/Rcpp/NAMESPACE
   pkg/Rcpp/NEWS
   pkg/Rcpp/R/Module.R
   pkg/Rcpp/inst/ChangeLog
   pkg/Rcpp/inst/include/Rcpp.h
   pkg/Rcpp/src/Module.cpp
Log:
Rcpp::InternalFunction

Modified: pkg/Rcpp/NAMESPACE
===================================================================
--- pkg/Rcpp/NAMESPACE	2010-06-15 20:51:14 UTC (rev 1546)
+++ pkg/Rcpp/NAMESPACE	2010-06-16 08:42:07 UTC (rev 1547)
@@ -5,12 +5,12 @@
 
 importFrom( utils, capture.output, assignInNamespace )
 
-exportClasses( Module, "C++Class", "C++Object", "C++ObjectS3" )
+exportClasses( Module, "C++Class", "C++Object", "C++ObjectS3", "C++Function" )
 export( Module )
 exportMethods( new )
 
 importFrom( utils, .DollarNames, prompt )
 S3method( .DollarNames, "C++ObjectS3" )
 S3method( .DollarNames, "Module" )
-exportMethods( prompt )
+exportMethods( prompt, show )
 

Modified: pkg/Rcpp/NEWS
===================================================================
--- pkg/Rcpp/NEWS	2010-06-15 20:51:14 UTC (rev 1546)
+++ pkg/Rcpp/NEWS	2010-06-16 08:42:07 UTC (rev 1547)
@@ -8,6 +8,10 @@
 
     o   RcppDateVector and RcppDatetimeVector get constructors from int,
         and simple setter functions for individual elements
+        
+    o   new API class Rcpp::InternalFunction that can expose C++ functions
+    	to R without modules. The function is exposed as an S4 object of 
+    	class C++Function
 
 0.8.2   2010-06-09
 

Modified: pkg/Rcpp/R/Module.R
===================================================================
--- pkg/Rcpp/R/Module.R	2010-06-15 20:51:14 UTC (rev 1546)
+++ pkg/Rcpp/R/Module.R	2010-06-16 08:42:07 UTC (rev 1547)
@@ -27,6 +27,25 @@
 		pointer = "externalptr"
 		), 
 	contains = "C++ObjectS3" )
+setClass( "C++Function", 
+	representation( pointer = "externalptr" ), 
+	contains = "function"
+)
+     
+internal_function <- function(pointer){
+	f <- function(xp){
+		force(xp)
+		function(...){
+			.External( "InternalFunction_invoke" , PACKAGE = "Rcpp", xp, ... )
+		}
+	}
+	o <- new( "C++Function", f(pointer) )
+	o at pointer <- pointer
+	o
+}
+setMethod( "show", "C++Function", function(object){
+	writeLines( sprintf( "internal C++ function <%s>", externalptr_address(object at pointer) ) )
+} )
 
 setMethod( "$", "Module", function(x, name){
 	if( .Call( "Module__has_function", x at pointer, name, PACKAGE = "Rcpp" ) ){

Modified: pkg/Rcpp/inst/ChangeLog
===================================================================
--- pkg/Rcpp/inst/ChangeLog	2010-06-15 20:51:14 UTC (rev 1546)
+++ pkg/Rcpp/inst/ChangeLog	2010-06-16 08:42:07 UTC (rev 1547)
@@ -1,3 +1,8 @@
+2010-06-13  Romain Francois <romain at r-enthusiasts.com>
+
+	* inst/include/Rcpp/InternalFunction.h: new class Rcpp::InternalFunction
+	* R/Module.R: R support for Rcpp::InternalFunction
+
 2010-06-15  Dirk Eddelbuettel  <edd at debian.org>
 
 	* src/RcppDatetimeVector.cpp: Use std::vector internally

Added: pkg/Rcpp/inst/include/Rcpp/InternalFunction.h
===================================================================
--- pkg/Rcpp/inst/include/Rcpp/InternalFunction.h	                        (rev 0)
+++ pkg/Rcpp/inst/include/Rcpp/InternalFunction.h	2010-06-16 08:42:07 UTC (rev 1547)
@@ -0,0 +1,54 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// InternalFunction.h: Rcpp R/C++ interface class library -- exposing C++ functions
+//
+// Copyright (C) 2010	Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_InternalFunction_h
+#define Rcpp_InternalFunction_h
+
+#include <RcppCommon.h>
+
+#include <Rcpp/grow.h>
+#include <Rcpp/RObject.h>
+
+namespace Rcpp{ 
+
+/** 
+ * functions
+ */
+class InternalFunction : public RObject {
+public:
+
+#include <Rcpp/generated/InternalFunction__ctors.h>	
+		
+private:
+	
+	// TODO: we can probably make this more efficient
+	//       by caching the Rcpp namespace or the function
+	inline void set( SEXP xp){
+		Environment RCPP = Environment::Rcpp_namespace() ;
+		Function intf = RCPP["internal_function"] ;
+		setSEXP( intf( xp ) ) ; 
+	}
+	
+};
+
+} // namespace Rcpp
+
+#endif

Added: pkg/Rcpp/inst/include/Rcpp/generated/InternalFunction__ctors.h
===================================================================
--- pkg/Rcpp/inst/include/Rcpp/generated/InternalFunction__ctors.h	                        (rev 0)
+++ pkg/Rcpp/inst/include/Rcpp/generated/InternalFunction__ctors.h	2010-06-16 08:42:07 UTC (rev 1547)
@@ -0,0 +1,555 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//           
+// InternalFunction__ctors.h: Rcpp R/C++ interface class library -- generated helper code for InternalFunction.h
+//
+// Copyright (C) 2010	Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__generated__InternalFunction_ctors_h
+#define Rcpp__generated__InternalFunction_ctors_h
+
+
+
+	template <typename OUT>
+	InternalFunction( OUT (*fun)(void) ) : RObject() {
+		set( XPtr< CppFunction0<OUT> >( new CppFunction0<OUT>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0>
+	InternalFunction( OUT (*fun)(U0 u0) ) : RObject() {
+		set( XPtr< CppFunction1<OUT,U0> >( new CppFunction1<OUT,U0>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1) ) : RObject() {
+		set( XPtr< CppFunction2<OUT,U0, U1> >( new CppFunction2<OUT,U0, U1>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2) ) : RObject() {
+		set( XPtr< CppFunction3<OUT,U0, U1, U2> >( new CppFunction3<OUT,U0, U1, U2>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3) ) : RObject() {
+		set( XPtr< CppFunction4<OUT,U0, U1, U2, U3> >( new CppFunction4<OUT,U0, U1, U2, U3>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4) ) : RObject() {
+		set( XPtr< CppFunction5<OUT,U0, U1, U2, U3, U4> >( new CppFunction5<OUT,U0, U1, U2, U3, U4>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5) ) : RObject() {
+		set( XPtr< CppFunction6<OUT,U0, U1, U2, U3, U4, U5> >( new CppFunction6<OUT,U0, U1, U2, U3, U4, U5>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6) ) : RObject() {
+		set( XPtr< CppFunction7<OUT,U0, U1, U2, U3, U4, U5, U6> >( new CppFunction7<OUT,U0, U1, U2, U3, U4, U5, U6>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7) ) : RObject() {
+		set( XPtr< CppFunction8<OUT,U0, U1, U2, U3, U4, U5, U6, U7> >( new CppFunction8<OUT,U0, U1, U2, U3, U4, U5, U6, U7>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8) ) : RObject() {
+		set( XPtr< CppFunction9<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8> >( new CppFunction9<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9) ) : RObject() {
+		set( XPtr< CppFunction10<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9> >( new CppFunction10<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10) ) : RObject() {
+		set( XPtr< CppFunction11<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10> >( new CppFunction11<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11) ) : RObject() {
+		set( XPtr< CppFunction12<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11> >( new CppFunction12<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12) ) : RObject() {
+		set( XPtr< CppFunction13<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12> >( new CppFunction13<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13) ) : RObject() {
+		set( XPtr< CppFunction14<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13> >( new CppFunction14<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14) ) : RObject() {
+		set( XPtr< CppFunction15<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14> >( new CppFunction15<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15) ) : RObject() {
+		set( XPtr< CppFunction16<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15> >( new CppFunction16<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16) ) : RObject() {
+		set( XPtr< CppFunction17<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16> >( new CppFunction17<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17) ) : RObject() {
+		set( XPtr< CppFunction18<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17> >( new CppFunction18<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18) ) : RObject() {
+		set( XPtr< CppFunction19<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18> >( new CppFunction19<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19) ) : RObject() {
+		set( XPtr< CppFunction20<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19> >( new CppFunction20<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20) ) : RObject() {
+		set( XPtr< CppFunction21<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20> >( new CppFunction21<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21) ) : RObject() {
+		set( XPtr< CppFunction22<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21> >( new CppFunction22<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22) ) : RObject() {
+		set( XPtr< CppFunction23<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22> >( new CppFunction23<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23) ) : RObject() {
+		set( XPtr< CppFunction24<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23> >( new CppFunction24<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24) ) : RObject() {
+		set( XPtr< CppFunction25<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24> >( new CppFunction25<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25) ) : RObject() {
+		set( XPtr< CppFunction26<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25> >( new CppFunction26<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26) ) : RObject() {
+		set( XPtr< CppFunction27<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26> >( new CppFunction27<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27) ) : RObject() {
+		set( XPtr< CppFunction28<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27> >( new CppFunction28<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28) ) : RObject() {
+		set( XPtr< CppFunction29<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28> >( new CppFunction29<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29) ) : RObject() {
+		set( XPtr< CppFunction30<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29> >( new CppFunction30<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30) ) : RObject() {
+		set( XPtr< CppFunction31<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30> >( new CppFunction31<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31) ) : RObject() {
+		set( XPtr< CppFunction32<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31> >( new CppFunction32<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32) ) : RObject() {
+		set( XPtr< CppFunction33<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32> >( new CppFunction33<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33) ) : RObject() {
+		set( XPtr< CppFunction34<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33> >( new CppFunction34<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34) ) : RObject() {
+		set( XPtr< CppFunction35<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34> >( new CppFunction35<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35) ) : RObject() {
+		set( XPtr< CppFunction36<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35> >( new CppFunction36<OUT,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>( fun ), false ) ) ;
+	}
+
+
+
+
+	template <typename OUT,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+	InternalFunction( OUT (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36) ) : RObject() {
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/rcpp -r 1547


More information about the Rcpp-commits mailing list