25#include <Rcpp/internal/call.h> 
   31        template <
typename FROM, 
typename TO>
 
   59        operator T*(){ 
return ptr ; }
 
 
   69        operator T*(){ 
return ptr ; }
 
 
   76        template <
typename Class>
 
   79            Function maker = Environment::Rcpp_namespace()[ 
"cpp_object_maker"] ;
 
 
   89#if defined(HAS_VARIADIC_TEMPLATES) 
   92    inline void signature(std::string& 
s, 
const char* name) {
 
   98        (
void)std::initializer_list<int>{
 
  114            inline int nargs() { 
return sizeof...(T); }
 
  115            inline bool is_void() { 
return std::is_void<RESULT_TYPE>::value; }
 
  116            inline void signature(std::string& 
s, 
const char* name) { Rcpp::signature<
RESULT_TYPE, T...>(
s, name); }
 
  136    #include <Rcpp/module/Module_generated_get_signature.h> 
  138    #include <Rcpp/module/Module_generated_CppFunction.h> 
  145    template <
typename Class>
 
  156        virtual void signature(std::string& 
s, 
const char* name ){ 
s = name ; }
 
 
  159    template <
typename Class, 
typename Parent>
 
  180#if defined(HAS_VARIADIC_TEMPLATES) 
  181    template <
typename... T>
 
  185        int n = 
sizeof...(T);
 
  188        (
void)std::initializer_list<int>{
 
  192    template <
typename Class>
 
  196        virtual int nargs() = 0 ;
 
  197        virtual void signature(std::string& 
s, 
const std::string& class_name) = 0 ;
 
  200    template <
typename Class, 
typename... T>
 
  204            return get_new_impl(
args, nargs, traits::make_index_sequence<
sizeof...(T)>());
 
  206        virtual int nargs(){ 
return sizeof...(T) ; }
 
  207        virtual void signature(std::string& 
s, 
const std::string& class_name ){
 
  218    template <
typename Class>
 
  222        virtual int nargs() = 0 ;
 
  223        virtual void signature(std::string& 
s, 
const std::string& class_name) = 0 ;
 
  226    template <
typename Class, 
typename... T>
 
  231            return get_new( 
args, traits::make_index_sequence<
sizeof...(T)>() ) ;
 
  233        virtual int nargs(){ 
return sizeof...(T) ; }
 
  234        virtual void signature(std::string& 
s, 
const std::string& class_name ){
 
  242        Class* (*ptr_fun)(T...) ;
 
  245    inline bool yes( 
SEXP* , 
int  ){
 
  255#include <Rcpp/module/Module_generated_ctor_signature.h> 
  256#include <Rcpp/module/Module_generated_Constructor.h> 
  257#include <Rcpp/module/Module_generated_Factory.h> 
  258#include <Rcpp/module/Module_generated_class_signature.h> 
  264    template <
typename Class>
 
  279        inline void signature(std::string& buffer, 
const std::string& class_name){
 
  280            ctor->signature(buffer, class_name) ;
 
 
 
  284    template <
typename Class>
 
  299        inline void signature(std::string& buffer, 
const std::string& class_name){
 
  300            fact->signature(buffer, class_name) ;
 
 
 
  305    template <
typename Class>
 
  324    template <
typename Class>
 
  332            RCPP_DEBUG( 
"S4_CppConstructor( SignedConstructor<Class>* m, SEXP class_xp, const std::string& class_name, std::string& buffer" ) ;
 
  337            field( 
"signature" )     = buffer ;
 
 
 
  345    template <
typename Class>
 
  354            int n = 
static_cast<int>(m->size()) ;
 
  359            for( 
int i=0; i<n; i++){
 
  361                nargs[i] = 
met->nargs() ;
 
  365                met->signature(buffer, name) ;
 
  371            field( 
"size" )          = n ;
 
  376            field( 
"nargs" )         = nargs ;
 
 
 
  384#if defined(HAS_VARIADIC_TEMPLATES) 
  401        inline int nargs() { 
return sizeof...(T); }
 
  402        inline bool is_void() { 
return std::is_void<RESULT_TYPE>::value; }
 
  403        inline bool is_const() { 
return IsConst; }
 
  404        inline void signature(std::string& 
s, 
const char* name) { Rcpp::signature<
RESULT_TYPE,T...>(
s, name); }
 
  431        inline int nargs() { 
return sizeof...(T); }
 
  432        inline bool is_void() { 
return std::is_void<RESULT_TYPE>::value; }
 
  433        inline bool is_const() { 
return IsConst; }
 
  434        inline void signature(std::string& 
s, 
const char* name) { Rcpp::signature<
RESULT_TYPE,T...>(
s, name); }
 
  445    #include <Rcpp/module/Module_generated_CppMethod.h> 
  446    #include <Rcpp/module/Module_generated_Pointer_CppMethod.h> 
  449    template <
typename Class>
 
  456        virtual SEXP get(
Class* ) { 
throw std::range_error(
"cannot retrieve property"); }
 
  457        virtual void set(
Class*, 
SEXP) { 
throw std::range_error(
"cannot set property"); }
 
 
  464    template <
typename Class, 
typename Parent>
 
  483    template <
typename Class>
 
  490    template <
typename Class>
 
  504    template <
typename Class>
 
  510            RCPP_DEBUG( 
"S4_field( CppProperty<Class>* p, const XP_Class& class_xp )" )
 
 
 
  526    template <
typename Enum, 
typename Parent>
 
  536                module->add_enum( parent_typeinfo_name, name, values ) ;
 
 
  540                values.insert( 
PAIR( name_, 
static_cast<int>( value_ ) ) ) ;
 
 
  547            typedef std::map< std::string, int > 
MAP ;
 
 
  555#if defined(HAS_VARIADIC_TEMPLATES) 
  558    void function(
const char* name_,  
RESULT_TYPE (*fun)(T... t), 
const char* docstring = 0) {
 
  575    #include <Rcpp/module/Module_generated_function.h> 
  580    template <
typename FROM, 
typename TO>
 
  583        function( 
fun_name.c_str(), fun, docstring ) ;
 
 
  595                slot( 
"module"  ) = 
XP( p, 
false ) ;
 
  596                slot( 
"pointer" ) = 
clxp ;
 
  600                slot( 
".Data" ) = buffer ;
 
  602                slot( 
"fields" )      = 
cl->fields( 
clxp ) ;
 
  604                slot( 
"methods" )     = 
cl->getMethods( 
clxp, buffer ) ;
 
  605                slot( 
"constructors") = 
cl->getConstructors( 
clxp, buffer ) ;
 
  606                slot( 
"docstring"   ) = 
cl->docstring ;
 
  607                slot( 
"typeid" )      = 
cl->get_typeinfo_name() ;
 
  608                slot( 
"enums"  )      = 
cl->enums ;
 
  609                slot( 
"parents" )     = 
cl->parents ;
 
 
 
  621            slot( 
"module" )   = 
XP( p, 
false ) ;
 
  623            slot( 
"pointer" )  = xp ;
 
 
 
  630#define RCPP_MODULE_BOOT(name) _rcpp_module_boot_##name 
  632#define RCPP_MODULE(name)                                               \ 
  633    void _rcpp_module_##name##_init() ;                                 \ 
  634    static Rcpp::Module _rcpp_module_##name( # name ) ;                 \ 
  635    extern "C" SEXP _rcpp_module_boot_##name(){                         \ 
  636        ::setCurrentScope( & _rcpp_module_##name ) ;                    \ 
  637        _rcpp_module_##name##_init( ) ;                                 \ 
  638        Rcpp::XPtr<Rcpp::Module> mod_xp(& _rcpp_module_##name , false); \ 
  639        ::setCurrentScope( 0 ) ;                                        \ 
  642    void _rcpp_module_##name##_init() 
 
  646#define VARIABLE_IS_NOT_USED __attribute__ ((unused)) 
  648#define VARIABLE_IS_NOT_USED 
  656#define GET_MODULE_SYM    ( moduleSym == NULL ? moduleSym = Rf_install("Module") : moduleSym ) 
  659#define LOAD_RCPP_MODULE(NAME) \ 
  660    Shield<SEXP> __load_module_call__( Rf_lang2( GET_MODULE_SYM, _rcpp_module_boot_##NAME() ) ); \ 
  661    Rcpp_fast_eval( __load_module_call__, R_GlobalEnv ); 
 
#define VARIABLE_IS_NOT_USED
 
static VARIABLE_IS_NOT_USED SEXP moduleSym
 
self & field(const char *name_, T Class::*ptr, const char *docstring=0)
 
Rcpp::XPtr< Rcpp::Module > XP
 
CppClass(Module *p, class_Base *cl, std::string &buffer)
 
XPtr< class_Base > XP_Class
 
virtual void run(Class *)
 
CppInheritedMethod(ParentMethod *parent_method_pointer_)
 
ParentMethod * parent_method_pointer
 
SEXP operator()(Class *object, SEXP *args)
 
CppMethod< Parent > ParentMethod
 
void signature(std::string &s, const char *name)
 
CppProperty< Class > Base
 
void set(Class *obj, SEXP s)
 
CppInheritedProperty(CppProperty< Parent > *parent_property_)
 
CppProperty< Parent > * parent_property
 
virtual void signature(std::string &s, const char *name)
 
virtual SEXP operator()(Class *, SEXP *)
 
CppObject(Module *p, class_Base *clazz, SEXP xp)
 
Rcpp::XPtr< Rcpp::Module > XP
 
CppProperty(const char *doc=0)
 
virtual SEXP get(Class *)
 
virtual bool is_readonly()
 
virtual std::string get_class()
 
virtual void set(Class *, SEXP)
 
FunctionFinalizer(Pointer p)
 
virtual void run(Class *object)
 
Reference::Storage Storage
 
XPtr< class_Base > XP_Class
 
S4_CppConstructor(SignedConstructor< Class > *m, const XP_Class &class_xp, const std::string &class_name, std::string &buffer)
 
S4_CppOverloadedMethods(vec_signed_method *m, const XP_Class &class_xp, const char *name, std::string &buffer)
 
std::vector< signed_method_class * > vec_signed_method
 
SignedMethod< Class > signed_method_class
 
Rcpp::XPtr< class_Base > XP_Class
 
XPtr< class_Base > XP_Class
 
S4_field(CppProperty< Class > *p, const XP_Class &class_xp)
 
void signature(std::string &buffer, const std::string &class_name)
 
Constructor_Base< Class > * ctor
 
SignedConstructor(Constructor_Base< Class > *ctor_, ValidConstructor valid_, const char *doc)
 
void signature(std::string &buffer, const std::string &class_name)
 
SignedFactory(Factory_Base< Class > *fact_, ValidConstructor valid_, const char *doc)
 
Factory_Base< Class > * fact
 
void signature(std::string &s, const char *name)
 
SignedMethod(METHOD *m, ValidMethod valid_, const char *doc)
 
CppMethod< Class > METHOD
 
self & value(const char *name_, Enum value_)
 
std::map< std::string, int > MAP
 
std::string parent_typeinfo_name
 
enum_< Enum, Parent > self
 
#define RCPP_CTOR_ASSIGN_WITH_BASE(__CLASS__)
 
T as(SEXP x, ::Rcpp::traits::r_type_primitive_tag)
 
SEXP make_new_object(Class *ptr)
 
std::string get_converter_name(const char *from, const char *to)
 
Function_Impl< PreserveStorage > Function
 
bool(* ValidConstructor)(SEXP *, int)
 
void converter(const char *from, const char *to, TO(*fun)(FROM), const char *docstring=0)
 
bool(* ValidMethod)(SEXP *, int)
 
Reference_Impl< PreserveStorage > Reference
 
S4_Impl< PreserveStorage > S4
 
attribute_hidden Rcpp::Module * getCurrentScope()
 
remove_const< typenameremove_reference< T >::type >::type type