42 #ifndef TPETRAEXT_TYPE_STACK_HPP 43 #define TPETRAEXT_TYPE_STACK_HPP 45 #include "Tpetra_ConfigDefs.hpp" 46 #include <Teuchos_ParameterList.hpp> 49 #define TPETRAEXT_TYPESTACK1(lbl,T1) \ 50 typedef Tpetra::Ext::TypeStackBottom<T1> \ 54 #define TPETRAEXT_TYPESTACK2(lbl,T1,T2) \ 55 typedef Tpetra::Ext::TypeStack<T1, \ 60 #define TPETRAEXT_TYPESTACK3(lbl,T1,T2,T3) \ 61 typedef Tpetra::Ext::TypeStack<T1, \ 62 Tpetra::Ext::TypeStack<T2, \ 67 #define TPETRAEXT_TYPESTACK4(lbl,T1,T2,T3,T4) \ 68 typedef Tpetra::Ext::TypeStack<T1, \ 69 Tpetra::Ext::TypeStack<T2, \ 70 Tpetra::Ext::TypeStack<T3, \ 82 enum { bottom =
true };
87 template <
class T,
class S>
91 enum { bottom =
false };
96 template <
class T,
class S,
class SS>
100 enum { bottom =
false };
101 enum { height = 1 + next::height };
104 template <
class TS,
class Init>
105 RCP<Teuchos::ParameterList>
106 initStackDB(Teuchos::ParameterList &pl, Init &init)
108 using Teuchos::ParameterList;
109 typedef typename TS::type T;
110 RCP<ParameterList> db = init.template initDB<T>(pl);
112 RCP<ParameterList> subdb = initStackDB<typename TS::next>(pl.sublist(
"child"),init);
113 db->set(
"child", *subdb);
128 #endif // TPETRAEXT_TYPE_STACK_HPP Namespace Tpetra contains the class and methods constituting the Tpetra library.
Implementation of a Tpetra::Ext::TypeStack, supporting the last entry.
Implementation of a Tpetra::Ext::TypeStack, supporting the next to last entry.