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