[Rcpp-commits] r3049 - in pkg/Rcpp/inst/include/Rcpp: . module

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Tue Jun 7 15:15:55 CEST 2011


Author: romain
Date: 2011-06-07 15:15:54 +0200 (Tue, 07 Jun 2011)
New Revision: 3049

Modified:
   pkg/Rcpp/inst/include/Rcpp/Module.h
   pkg/Rcpp/inst/include/Rcpp/module/Module_generated_CppMethod.h
Log:
second pass

Modified: pkg/Rcpp/inst/include/Rcpp/Module.h
===================================================================
--- pkg/Rcpp/inst/include/Rcpp/Module.h	2011-06-07 12:44:34 UTC (rev 3048)
+++ pkg/Rcpp/inst/include/Rcpp/Module.h	2011-06-07 13:15:54 UTC (rev 3049)
@@ -38,6 +38,15 @@
     T* ptr;
 } ;
 
+namespace internal {
+template <typename Class>
+SEXP make_new_object( Class* ptr ){
+    Rcpp::XPtr<Class> xp( ptr, true ) ;
+	Function maker = Environment::Rcpp_namespace()[ "cpp_object_maker"] ;
+	return maker( typeid(Class).name() , xp ) ;
+}
+} 
+
 class CppFunction {
 	public:
 		CppFunction(const char* doc = 0) : docstring( doc == 0 ? "" : doc) {}

Modified: pkg/Rcpp/inst/include/Rcpp/module/Module_generated_CppMethod.h
===================================================================
--- pkg/Rcpp/inst/include/Rcpp/module/Module_generated_CppMethod.h	2011-06-07 12:44:34 UTC (rev 3048)
+++ pkg/Rcpp/inst/include/Rcpp/module/Module_generated_CppMethod.h	2011-06-07 13:15:54 UTC (rev 3049)
@@ -2,7 +2,7 @@
 //
 // Module_generated_CppMethod.h: Rcpp R/C++ interface class library -- Rcpp modules
 //
-// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+// Copyright (C) 2010	Dirk Eddelbuettel and Romain Francois
 //
 // This file is part of Rcpp.
 //
@@ -66,9 +66,7 @@
 		CppMethod0( Method m) : method_class(), met(m){} 
 		SEXP operator()( Class* object, SEXP* ){
 		    T* ptr = (object->*met)( ) ;
-			XP res = XP( ptr, true ) ;
-			Function maker = Environment::Rcpp_namespace()[ "cpp_object_maker"] ;
-			return maker( typeid(T).name() , res ) ;
+			return internal::make_new_object<T>(ptr) ; 
 		}
 		inline int nargs(){ return 0 ; }
 		inline bool is_void(){ return false ; }
@@ -79,8 +77,8 @@
 		Method met ;
 	} ;
 	
+
 	
-
 	template <typename Class, typename OUT> class const_CppMethod0 : public CppMethod<Class> {
 	public:
 		typedef OUT (Class::*Method)(void) const ;
@@ -116,6 +114,27 @@
 		Method met ;
 	} ;
 
+	template <typename Class, typename T> 
+	class const_CppMethod0< Class, result<T> > : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(void) const ;
+		typedef CppMethod<Class> method_class ;
+		typedef XPtr<T> XP ;
+		const_CppMethod0( Method m) : method_class(), met(m){} 
+		SEXP operator()( Class* object, SEXP* ){
+		    T* ptr = (object->*met)( ) ;
+			return internal::make_new_object<T>(ptr) ; 
+		}
+		inline int nargs(){ return 0 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return false ; }
+		inline void signature(std::string& s, const char* name){ Rcpp::signature< result<T> >(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
+	
 
 
 	template < typename Class, typename OUT, typename U0 > class CppMethod1 : public CppMethod<Class> {
@@ -136,6 +155,27 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0 >
+	class CppMethod1 <Class, result<T>, U0> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0) ;
+		typedef CppMethod<Class> method_class ;
+		
+		CppMethod1(Method m) : method_class(), met(m) {} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 1 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return false ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
+	
 	template < typename Class, typename U0 > class CppMethod1<Class,void,U0> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0) ;
@@ -154,6 +194,8 @@
 		Method met ;
 	} ;
 
+	
+	
 
 
 	template < typename Class, typename OUT, typename U0 > class const_CppMethod1 : public CppMethod<Class> {
@@ -174,6 +216,26 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0 > 
+	class const_CppMethod1 <Class, result<T>, U0> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0) const ;
+		typedef CppMethod<Class> method_class ;
+		
+		const_CppMethod1(Method m) : method_class(), met(m){} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 1 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return true ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
 	template < typename Class, typename U0 > class const_CppMethod1<Class,void,U0> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0) const ;
@@ -214,6 +276,27 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1 >
+	class CppMethod2 <Class, result<T>, U0, U1> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1) ;
+		typedef CppMethod<Class> method_class ;
+		
+		CppMethod2(Method m) : method_class(), met(m) {} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 2 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return false ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
+	
 	template < typename Class, typename U0, typename U1 > class CppMethod2<Class,void,U0, U1> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1) ;
@@ -232,6 +315,8 @@
 		Method met ;
 	} ;
 
+	
+	
 
 
 	template < typename Class, typename OUT, typename U0, typename U1 > class const_CppMethod2 : public CppMethod<Class> {
@@ -252,6 +337,26 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1 > 
+	class const_CppMethod2 <Class, result<T>, U0, U1> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1) const ;
+		typedef CppMethod<Class> method_class ;
+		
+		const_CppMethod2(Method m) : method_class(), met(m){} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 2 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return true ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
 	template < typename Class, typename U0, typename U1 > class const_CppMethod2<Class,void,U0, U1> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1) const ;
@@ -292,6 +397,27 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2 >
+	class CppMethod3 <Class, result<T>, U0, U1, U2> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2) ;
+		typedef CppMethod<Class> method_class ;
+		
+		CppMethod3(Method m) : method_class(), met(m) {} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 3 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return false ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
+	
 	template < typename Class, typename U0, typename U1, typename U2 > class CppMethod3<Class,void,U0, U1, U2> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2) ;
@@ -310,6 +436,8 @@
 		Method met ;
 	} ;
 
+	
+	
 
 
 	template < typename Class, typename OUT, typename U0, typename U1, typename U2 > class const_CppMethod3 : public CppMethod<Class> {
@@ -330,6 +458,26 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2 > 
+	class const_CppMethod3 <Class, result<T>, U0, U1, U2> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2) const ;
+		typedef CppMethod<Class> method_class ;
+		
+		const_CppMethod3(Method m) : method_class(), met(m){} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 3 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return true ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
 	template < typename Class, typename U0, typename U1, typename U2 > class const_CppMethod3<Class,void,U0, U1, U2> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2) const ;
@@ -370,6 +518,27 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3 >
+	class CppMethod4 <Class, result<T>, U0, U1, U2, U3> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3) ;
+		typedef CppMethod<Class> method_class ;
+		
+		CppMethod4(Method m) : method_class(), met(m) {} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 4 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return false ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3 > class CppMethod4<Class,void,U0, U1, U2, U3> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3) ;
@@ -388,6 +557,8 @@
 		Method met ;
 	} ;
 
+	
+	
 
 
 	template < typename Class, typename OUT, typename U0, typename U1, typename U2, typename U3 > class const_CppMethod4 : public CppMethod<Class> {
@@ -408,6 +579,26 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3 > 
+	class const_CppMethod4 <Class, result<T>, U0, U1, U2, U3> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3) const ;
+		typedef CppMethod<Class> method_class ;
+		
+		const_CppMethod4(Method m) : method_class(), met(m){} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 4 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return true ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3 > class const_CppMethod4<Class,void,U0, U1, U2, U3> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3) const ;
@@ -448,6 +639,27 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3, typename U4 >
+	class CppMethod5 <Class, result<T>, U0, U1, U2, U3, U4> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4) ;
+		typedef CppMethod<Class> method_class ;
+		
+		CppMethod5(Method m) : method_class(), met(m) {} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U4 >::type >( args[4] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 5 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return false ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3, U4>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4 > class CppMethod5<Class,void,U0, U1, U2, U3, U4> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4) ;
@@ -466,6 +678,8 @@
 		Method met ;
 	} ;
 
+	
+	
 
 
 	template < typename Class, typename OUT, typename U0, typename U1, typename U2, typename U3, typename U4 > class const_CppMethod5 : public CppMethod<Class> {
@@ -486,6 +700,26 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3, typename U4 > 
+	class const_CppMethod5 <Class, result<T>, U0, U1, U2, U3, U4> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4) const ;
+		typedef CppMethod<Class> method_class ;
+		
+		const_CppMethod5(Method m) : method_class(), met(m){} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U4 >::type >( args[4] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 5 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return true ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3, U4>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4 > class const_CppMethod5<Class,void,U0, U1, U2, U3, U4> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4) const ;
@@ -526,6 +760,27 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5 >
+	class CppMethod6 <Class, result<T>, U0, U1, U2, U3, U4, U5> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5) ;
+		typedef CppMethod<Class> method_class ;
+		
+		CppMethod6(Method m) : method_class(), met(m) {} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U4 >::type >( args[4] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U5 >::type >( args[5] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 6 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return false ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3, U4, U5>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5 > class CppMethod6<Class,void,U0, U1, U2, U3, U4, U5> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5) ;
@@ -544,6 +799,8 @@
 		Method met ;
 	} ;
 
+	
+	
 
 
 	template < typename Class, typename OUT, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5 > class const_CppMethod6 : public CppMethod<Class> {
@@ -564,6 +821,26 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5 > 
+	class const_CppMethod6 <Class, result<T>, U0, U1, U2, U3, U4, U5> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5) const ;
+		typedef CppMethod<Class> method_class ;
+		
+		const_CppMethod6(Method m) : method_class(), met(m){} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U4 >::type >( args[4] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U5 >::type >( args[5] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 6 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return true ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3, U4, U5>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5 > class const_CppMethod6<Class,void,U0, U1, U2, U3, U4, U5> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5) const ;
@@ -604,6 +881,27 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6 >
+	class CppMethod7 <Class, result<T>, U0, U1, U2, U3, U4, U5, U6> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6) ;
+		typedef CppMethod<Class> method_class ;
+		
+		CppMethod7(Method m) : method_class(), met(m) {} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U4 >::type >( args[4] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U5 >::type >( args[5] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U6 >::type >( args[6] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 7 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return false ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3, U4, U5, U6>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6 > class CppMethod7<Class,void,U0, U1, U2, U3, U4, U5, U6> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6) ;
@@ -622,6 +920,8 @@
 		Method met ;
 	} ;
 
+	
+	
 
 
 	template < typename Class, typename OUT, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6 > class const_CppMethod7 : public CppMethod<Class> {
@@ -642,6 +942,26 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6 > 
+	class const_CppMethod7 <Class, result<T>, U0, U1, U2, U3, U4, U5, U6> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6) const ;
+		typedef CppMethod<Class> method_class ;
+		
+		const_CppMethod7(Method m) : method_class(), met(m){} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U4 >::type >( args[4] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U5 >::type >( args[5] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U6 >::type >( args[6] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 7 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return true ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3, U4, U5, U6>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6 > class const_CppMethod7<Class,void,U0, U1, U2, U3, U4, U5, U6> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6) const ;
@@ -682,6 +1002,27 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7 >
+	class CppMethod8 <Class, result<T>, U0, U1, U2, U3, U4, U5, U6, U7> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7) ;
+		typedef CppMethod<Class> method_class ;
+		
+		CppMethod8(Method m) : method_class(), met(m) {} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U4 >::type >( args[4] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U5 >::type >( args[5] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U6 >::type >( args[6] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U7 >::type >( args[7] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 8 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return false ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3, U4, U5, U6, U7>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7 > class CppMethod8<Class,void,U0, U1, U2, U3, U4, U5, U6, U7> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7) ;
@@ -700,6 +1041,8 @@
 		Method met ;
 	} ;
 
+	
+	
 
 
 	template < typename Class, typename OUT, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7 > class const_CppMethod8 : public CppMethod<Class> {
@@ -720,6 +1063,26 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7 > 
+	class const_CppMethod8 <Class, result<T>, U0, U1, U2, U3, U4, U5, U6, U7> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7) const ;
+		typedef CppMethod<Class> method_class ;
+		
+		const_CppMethod8(Method m) : method_class(), met(m){} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U4 >::type >( args[4] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U5 >::type >( args[5] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U6 >::type >( args[6] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U7 >::type >( args[7] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 8 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return true ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3, U4, U5, U6, U7>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7 > class const_CppMethod8<Class,void,U0, U1, U2, U3, U4, U5, U6, U7> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7) const ;
@@ -760,6 +1123,27 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8 >
+	class CppMethod9 <Class, result<T>, U0, U1, U2, U3, U4, U5, U6, U7, U8> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8) ;
+		typedef CppMethod<Class> method_class ;
+		
+		CppMethod9(Method m) : method_class(), met(m) {} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U4 >::type >( args[4] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U5 >::type >( args[5] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U6 >::type >( args[6] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U7 >::type >( args[7] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U8 >::type >( args[8] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 9 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return false ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3, U4, U5, U6, U7, U8>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8 > class CppMethod9<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8) ;
@@ -778,6 +1162,8 @@
 		Method met ;
 	} ;
 
+	
+	
 
 
 	template < typename Class, typename OUT, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8 > class const_CppMethod9 : public CppMethod<Class> {
@@ -798,6 +1184,26 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8 > 
+	class const_CppMethod9 <Class, result<T>, U0, U1, U2, U3, U4, U5, U6, U7, U8> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8) const ;
+		typedef CppMethod<Class> method_class ;
+		
+		const_CppMethod9(Method m) : method_class(), met(m){} 
+		SEXP operator()( Class* object, SEXP* args){
+		    T* ptr = (object->*met)( Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U0 >::type >( args[0] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U1 >::type >( args[1] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U2 >::type >( args[2] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U3 >::type >( args[3] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U4 >::type >( args[4] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U5 >::type >( args[5] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U6 >::type >( args[6] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U7 >::type >( args[7] ), Rcpp::as< typename Rcpp::traits::remove_const_and_reference< U8 >::type >( args[8] ) ) ;
+			return internal::make_new_object<T>(ptr) ;
+		}
+		inline int nargs(){ return 9 ; }
+		inline bool is_void(){ return false ; }
+		inline bool is_const(){ return true ; }
+		inline void signature(std::string& s, const char* name ){ Rcpp::signature<result<T>,U0, U1, U2, U3, U4, U5, U6, U7, U8>(s, name) ; }
+		
+	private:
+		Method met ;
+	} ;
+	
 	template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8 > class const_CppMethod9<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8> : public CppMethod<Class> {
 	public:
 		typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8) const ;
@@ -838,6 +1244,27 @@
 		Method met ;
 	} ;
 	
+	template < typename Class, typename T, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9 >
+	class CppMethod10 <Class, result<T>, U0, U1, U2, U3, U4, U5, U6, U7, U8, U9> : public CppMethod<Class> {
+	public:
+		typedef result<T> (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9) ;
+		typedef CppMethod<Class> method_class ;
+		
+		CppMethod10(Method m) : method_class(), met(m) {} 
+		SEXP operator()( Class* object, SEXP* args){
[TRUNCATED]

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


More information about the Rcpp-commits mailing list