dune-typetree  2.3.1
powercompositenodetransformationtemplates.hh
Go to the documentation of this file.
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 
4 #ifndef DUNE_TYPETREE_POWERCOMPOSITENODETRANSFORMATIONTEMPLATES_HH
5 #define DUNE_TYPETREE_POWERCOMPOSITENODETRANSFORMATIONTEMPLATES_HH
6 
7 #include <cstddef>
8 
9 namespace Dune {
10  namespace TypeTree {
11 
17  template<typename SourceNode, typename Transformation, template<typename,typename,std::size_t> class TransformedNode>
19  {
20  template<typename TC>
21  struct result
22  {
23  typedef TransformedNode<SourceNode,TC,SourceNode::CHILDREN> type;
24  };
25  };
26 
27 
28 #if HAVE_VARIADIC_TEMPLATES
29 
30  template<typename SourceNode, typename Transformation, template<typename,typename...> class TransformedNode>
31  struct GenericVariadicCompositeNodeTransformationTemplate
32  {
33  template<typename... TC>
34  struct result
35  {
36  typedef TransformedNode<SourceNode,TC...> type;
37  };
38  };
39 
40 #endif // HAVE_VARIADIC_TEMPLATES
41 
42 
43  template<typename SourceNode,
44  typename Transformation,
45  template<typename SourceNode_,
46  typename C0,
47  typename C1,
48  typename C2,
49  typename C3,
50  typename C4,
51  typename C5,
52  typename C6,
53  typename C7,
54  typename C8,
55  typename C9> class TransformedNode>
57  {
58  template<typename TC0,
59  typename TC1,
60  typename TC2,
61  typename TC3,
62  typename TC4,
63  typename TC5,
64  typename TC6,
65  typename TC7,
66  typename TC8,
67  typename TC9>
68  struct result
69  {
70  typedef TransformedNode<SourceNode,TC0,TC1,TC2,TC3,TC4,TC5,TC6,TC7,TC8,TC9> type;
71  };
72  };
73 
74 
76 
77  } // namespace TypeTree
78 } //namespace Dune
79 
80 #endif // DUNE_TYPETREE_POWERCOMPOSITENODETRANSFORMATIONTEMPLATES_HH
TransformedNode< SourceNode, TC0, TC1, TC2, TC3, TC4, TC5, TC6, TC7, TC8, TC9 > type
Definition: powercompositenodetransformationtemplates.hh:70
Definition: powercompositenodetransformationtemplates.hh:56
Definition: powercompositenodetransformationtemplates.hh:18
TransformedNode< SourceNode, TC, SourceNode::CHILDREN > type
Definition: powercompositenodetransformationtemplates.hh:23
Definition: powercompositenodetransformationtemplates.hh:68
static const result_type result
Definition: accumulate_static.hh:108
Definition: powercompositenodetransformationtemplates.hh:21