diff options
Diffstat (limited to 'Examples/test-suite/template_default_arg_overloaded_extend.i')
-rw-r--r-- | Examples/test-suite/template_default_arg_overloaded_extend.i | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Examples/test-suite/template_default_arg_overloaded_extend.i b/Examples/test-suite/template_default_arg_overloaded_extend.i new file mode 100644 index 000000000..67d66c2fa --- /dev/null +++ b/Examples/test-suite/template_default_arg_overloaded_extend.i @@ -0,0 +1,44 @@ +%module template_default_arg_overloaded_extend + +%inline %{ +namespace gaia2 { + +struct Filter {}; +struct SearchPoint {}; +struct DataSet {}; + +template <typename SearchPointType, typename DataSetType> +class BaseSearchSpace {}; + +template <typename SearchPointType, typename DataSetType> +class BaseResultSet { +public: + const char *over(int i = 0) { + return "over(int)"; + } +}; +} +%} + +// Specialized template extend +%extend gaia2::BaseResultSet<gaia2::SearchPoint, gaia2::DataSet> { + int go_get_method(int n, gaia2::SearchPoint, int offset = -1) { + return offset; + } + const char *over(gaia2::SearchPoint, int x = 0) { + return "over(giai2::SearchPoint, int)"; + } +} + +// Generic extend for all template instantiations +%extend gaia2::BaseResultSet { + int go_get_template(int n, SearchPointType sss, int offset = -2) { + return offset; + } + const char *over(bool b, SearchPointType, int x = 0) { + return "over(bool, SearchPointType, int)"; + } +} + +%template(ResultSet) gaia2::BaseResultSet<gaia2::SearchPoint, gaia2::DataSet>; + |