diff options
Diffstat (limited to 'Examples/test-suite/template_default_class_parms.i')
-rw-r--r-- | Examples/test-suite/template_default_class_parms.i | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Examples/test-suite/template_default_class_parms.i b/Examples/test-suite/template_default_class_parms.i index cd37269d3..e5a8c9d49 100644 --- a/Examples/test-suite/template_default_class_parms.i +++ b/Examples/test-suite/template_default_class_parms.i @@ -31,3 +31,49 @@ namespace Space { %template(FooAnotherType) Space::Foo<Space::AnotherType>; %template() Space::ATemplate<>; + + +// Github issue #280 segfault +%inline %{ +namespace Teuchos { + class Describable {}; +} +namespace KokkosClassic { + namespace DefaultNode { + struct DefaultNodeType {}; + }; +} + +namespace Tpetra { + template <class LocalOrdinal = int, + class GlobalOrdinal = LocalOrdinal, + class Node = KokkosClassic::DefaultNode::DefaultNodeType> + class Map : public Teuchos::Describable { + public: + typedef LocalOrdinal local_ordinal_type; + typedef GlobalOrdinal global_ordinal_type; + typedef Node node_type; + void test_func(LocalOrdinal, GlobalOrdinal, Node) {} + }; +} +%} + +#ifdef SWIGJAVA +// Fixes still required for other languages +%template(MapDefaults) Tpetra::Map<>; +#endif + +%inline %{ +namespace Details { + template < class LO = ::Tpetra::Map<>::local_ordinal_type, + class GO = typename ::Tpetra::Map<LO>::global_ordinal_type, + class NT = typename ::Tpetra::Map<LO, GO>::node_type > + class Transfer : public Teuchos::Describable { + public: + void transfer_func(LO, GO, NT) {} + }; +} +%} + +// Below is not resolving correctly yet +//%template(TransferDefaults) Details::Transfer<>; |