#include
#include
#include
// Python
struct _object;
typedef _object PyObject;
namespace pyzables {
//===========================================================================
class SomeDummy1 {};
class SomeDummy2 {};
//===========================================================================
class NakedBuffers {
public:
NakedBuffers(int size, double valx, double valy);
NakedBuffers(const NakedBuffers&) = delete;
NakedBuffers& operator=(const NakedBuffers&) = delete;
~NakedBuffers();
public:
int GetN();
double* GetX();
double* GetY();
private:
double* m_Xbuf;
double* m_Ybuf;
int m_size;
};
template class NakedBuffers2 {
public:
NakedBuffers2(int size, double valx, double valy)
: m_Xbuf(size), m_Ybuf(size) {
for (int i = 0; i < size; ++i) {
m_Xbuf[i] = valx * i;
m_Ybuf[i] = valy * i;
}
}
public:
int GetN() { return m_Xbuf.size(); }
double* GetX() { return m_Xbuf.data(); }
double* GetY() { return m_Ybuf.data(); }
private:
C m_Xbuf;
C m_Ybuf;
int m_size;
};
class Vector : public std::vector {
public:
Vector(int size) : std::vector(size) {}
};
//===========================================================================
class MyBase {
public:
virtual ~MyBase();
};
class MyDerived : public MyBase {
public:
virtual ~MyDerived();
};
MyBase* GimeDerived();
//===========================================================================
class Countable {
public:
Countable() { ++sInstances; }
Countable(const Countable&) { ++sInstances; }
Countable& operator=(const Countable&) { return *this; }
~Countable() { --sInstances; }
public:
virtual const char* say_hi() { return "Hi!"; }
public:
unsigned int m_check = 0xcdcdcdcd;
public:
static int sInstances;
};
typedef std::shared_ptr SharedCountable_t;
extern SharedCountable_t mine;
void renew_mine();
SharedCountable_t gime_mine();
SharedCountable_t* gime_mine_ptr();
SharedCountable_t& gime_mine_ref();
unsigned int pass_mine_sp(SharedCountable_t p);
unsigned int pass_mine_sp_ref(SharedCountable_t& p);
unsigned int pass_mine_sp_ptr(SharedCountable_t* p);
unsigned int pass_mine_rp(Countable);
unsigned int pass_mine_rp_ref(const Countable&);
unsigned int pass_mine_rp_ptr(const Countable*);
Countable* gime_naked_countable();
//===========================================================================
class unknown_iterator;
class IndexableBase {
public:
unknown_iterator* begin() { return nullptr; }
unknown_iterator* end() { return (unknown_iterator*)1; }
int operator[](int) { return 42; }
int size() { return 1; }
};
class IndexableDerived : public IndexableBase {};
//===========================================================================
class WithCallback1 {
public:
WithCallback1(int i);
public:
int get_int();
void set_int(int i);
private:
int m_int;
public:
static void __cppjit_explicit_pythonize__(PyObject* klass,
const std::string&);
static std::string klass_name;
};
class WithCallback2 {
public:
WithCallback2(int i);
public:
int get_int();
void set_int(int i);
protected:
int m_int;
public:
static void __cppjit_pythonize__(PyObject* klass, const std::string&);
static std::string klass_name;
};
class WithCallback3 : public WithCallback2 {
public:
using WithCallback2::WithCallback2;
public:
int get_int();
void set_int(int i);
};
} // namespace pyzables