Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
CPPConstructor.h
Go to the documentation of this file.
1#ifndef CPYCPPYY_CPPCONSTRUCTOR_H
2#define CPYCPPYY_CPPCONSTRUCTOR_H
3
4// Bindings
5#include "CPPMethod.h"
6
7
8namespace CPyCppyy {
9
10class CPPConstructor : public CPPMethod {
11public:
13
14public:
15 virtual PyObject* GetDocString();
18
19 virtual PyCallable* Clone() { return new CPPConstructor(*this); }
20 virtual PyObject* Call(CPPInstance*& self,
21 CPyCppyy_PyArgs_t args, size_t nargsf, PyObject* kwds, CallContext* ctxt = nullptr);
22
23protected:
24 virtual bool InitExecutor_(Executor*&, CallContext* ctxt = nullptr);
25};
26
27
28// specialization for multiple inheritance disambiguation
30public:
34
35public:
36 virtual PyCallable* Clone() { return new CPPMultiConstructor(*this); }
37 virtual PyObject* Call(CPPInstance*& self,
38 CPyCppyy_PyArgs_t args, size_t nargsf, PyObject* kwds, CallContext* ctxt = nullptr);
39
40private:
42};
43
44
45// specializations of prohibiting constructors
47public:
48 using CPPConstructor::CPPConstructor;
49
50public:
51 virtual PyCallable* Clone() { return new CPPAbstractClassConstructor(*this); }
52 virtual PyObject* Call(CPPInstance*& self,
53 CPyCppyy_PyArgs_t args, size_t nargsf, PyObject* kwds, CallContext* ctxt = nullptr);
54};
55
57public:
58 using CPPConstructor::CPPConstructor;
59
60public:
61 virtual PyCallable* Clone() { return new CPPNamespaceConstructor(*this); }
62 virtual PyObject* Call(CPPInstance*& self,
63 CPyCppyy_PyArgs_t args, size_t nargsf, PyObject* kwds, CallContext* ctxt = nullptr);
64};
65
67public:
68 using CPPConstructor::CPPConstructor;
69
70public:
71 virtual PyCallable* Clone() { return new CPPIncompleteClassConstructor(*this); }
72 virtual PyObject* Call(CPPInstance*& self,
73 CPyCppyy_PyArgs_t args, size_t nargsf, PyObject* kwds, CallContext* ctxt = nullptr);
74};
75
77public:
78 using CPPConstructor::CPPConstructor;
79
80public:
81 virtual PyCallable* Clone() { return new CPPAllPrivateClassConstructor(*this); }
82 virtual PyObject* Call(CPPInstance*& self,
83 CPyCppyy_PyArgs_t args, size_t nargsf, PyObject* kwds, CallContext* ctxt = nullptr);
84};
85
86} // namespace CPyCppyy
87
88#endif // !CPYCPPYY_CPPCONSTRUCTOR_H
PyObject * CPyCppyy_PyArgs_t
Definition CPyCppyy.h:330
_object PyObject
virtual PyObject * Call(CPPInstance *&self, CPyCppyy_PyArgs_t args, size_t nargsf, PyObject *kwds, CallContext *ctxt=nullptr)
virtual PyObject * Call(CPPInstance *&self, CPyCppyy_PyArgs_t args, size_t nargsf, PyObject *kwds, CallContext *ctxt=nullptr)
virtual PyObject * GetDocString()
virtual bool InitExecutor_(Executor *&, CallContext *ctxt=nullptr)
virtual PyObject * Reflex(Cppyy::Reflex::RequestId_t, Cppyy::Reflex::FormatId_t=Cppyy::Reflex::OPTIMAL)
virtual PyCallable * Clone()
virtual PyObject * Call(CPPInstance *&self, CPyCppyy_PyArgs_t args, size_t nargsf, PyObject *kwds, CallContext *ctxt=nullptr)
virtual PyObject * Call(CPPInstance *&self, CPyCppyy_PyArgs_t args, size_t nargsf, PyObject *kwds, CallContext *ctxt=nullptr)
CPPMethod(Cppyy::TCppScope_t scope, Cppyy::TCppMethod_t method)
CPPMultiConstructor & operator=(const CPPMultiConstructor &)
virtual PyCallable * Clone()
virtual PyObject * Call(CPPInstance *&self, CPyCppyy_PyArgs_t args, size_t nargsf, PyObject *kwds, CallContext *ctxt=nullptr)
virtual PyObject * Call(CPPInstance *&self, CPyCppyy_PyArgs_t args, size_t nargsf, PyObject *kwds, CallContext *ctxt=nullptr)
const FormatId_t OPTIMAL
Definition Reflex.h:22
intptr_t TCppMethod_t
Definition cpp_cppyy.h:22
size_t TCppScope_t
Definition cpp_cppyy.h:18