83 lines
2.0 KiB
Plaintext
83 lines
2.0 KiB
Plaintext
#include <tools/workspace/pybind_wrapper/test/pybind_wrapper_test.h>
|
|
|
|
namespace anzu {
|
|
|
|
virtual class PointBase {};
|
|
|
|
namespace sub {
|
|
class Point2 : anzu::PointBase {
|
|
Point2(double x); // use the default value.
|
|
Point2(double x, double y);
|
|
double x() const;
|
|
double y() const;
|
|
double sum() const;
|
|
double func_with_default_args(double a) const; // use the default value.
|
|
double func_with_default_args(double a, double b) const;
|
|
void print(string s) const;
|
|
};
|
|
} // namespace sub
|
|
|
|
class Point3 : anzu::PointBase {
|
|
Point3(double x, double y, double z);
|
|
double x() const;
|
|
double x(double to_add) const;
|
|
double y() const;
|
|
double z() const;
|
|
double sum() const;
|
|
};
|
|
|
|
template <POINT = {anzu::sub::Point2, anzu::Point3}>
|
|
class Template {
|
|
Template(const POINT& point);
|
|
Template(const POINT& point, double a);
|
|
Template(const This& other);
|
|
|
|
POINT point() const;
|
|
|
|
double overload() const;
|
|
double overload(const POINT& point) const;
|
|
double overload(const This& other) const;
|
|
|
|
POINT method_on_template_type(const POINT& point) const;
|
|
This method_on_this(const POINT& point) const;
|
|
|
|
static This static_method(const This& other, double dummy);
|
|
|
|
template <OTHER_POINT = {anzu::sub::Point2, anzu::Point3}>
|
|
double template_method(const OTHER_POINT& other) const;
|
|
};
|
|
|
|
template <T1, T2>
|
|
class Template2 {
|
|
Template2(const T1& t1, const T2& t2);
|
|
double sum_x() const;
|
|
double sum_x(const T1& other1) const;
|
|
double sum_x(T2* other2) const;
|
|
double sum_x(const T1& other1, T2* other2) const;
|
|
T1 property_t1;
|
|
};
|
|
|
|
typedef anzu::Template2<anzu::sub::Point2, anzu::Point3>
|
|
Template2Point2Point3Instantiation;
|
|
|
|
class Ignore {
|
|
Ignore(int x);
|
|
};
|
|
|
|
namespace sub2 {
|
|
class Point4 {
|
|
Point4(const anzu::sub::Point2& p_in, double z_in, double w_in);
|
|
double sum();
|
|
const anzu::sub::Point2 p;
|
|
double z;
|
|
double w;
|
|
};
|
|
} // namespace sub2
|
|
|
|
double global_func_on_base(anzu::PointBase* point);
|
|
|
|
} // namespace anzu
|
|
|
|
double global_func_overloads(anzu::sub::Point2* point2);
|
|
double global_func_overloads(anzu::Point3* point3);
|