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);
 |