Sacado Package Browser (Single Doxygen Collection)
Version of the Day
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
src
mpl
Sacado_mpl_quote.hpp
Go to the documentation of this file.
1
// $Id$
2
// $Source$
3
// @HEADER
4
// ***********************************************************************
5
//
6
// Sacado Package
7
// Copyright (2006) Sandia Corporation
8
//
9
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
10
// the U.S. Government retains certain rights in this software.
11
//
12
// This library is free software; you can redistribute it and/or modify
13
// it under the terms of the GNU Lesser General Public License as
14
// published by the Free Software Foundation; either version 2.1 of the
15
// License, or (at your option) any later version.
16
//
17
// This library is distributed in the hope that it will be useful, but
18
// WITHOUT ANY WARRANTY; without even the implied warranty of
19
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20
// Lesser General Public License for more details.
21
//
22
// You should have received a copy of the GNU Lesser General Public
23
// License along with this library; if not, write to the Free Software
24
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25
// USA
26
// Questions? Contact David M. Gay (dmgay@sandia.gov) or Eric T. Phipps
27
// (etphipp@sandia.gov).
28
//
29
// ***********************************************************************
30
// @HEADER
31
32
#ifndef SACADO_MPL_QUOTE_HPP
33
#define SACADO_MPL_QUOTE_HPP
34
35
#include "
Sacado_mpl_type_wrap.hpp
"
36
37
namespace
Sacado {
38
39
namespace
mpl {
40
41
// Transform a class/template to a metafunction class
42
// (nested template apply)
43
template
<
class
F>
44
struct
quote0
{
45
struct
apply
:
mpl::type_wrap
< F > {};
46
};
47
48
template
<
template
<
class
T1>
class
F
>
49
struct
quote1
{
50
template
<
class
T1>
51
struct
apply
:
mpl::type_wrap
< F<T1> > {};
52
};
53
54
template
<
template
<
class
T1
,
55
class
T2
>
class
F
>
56
struct
quote2
{
57
template
<
class
T1
,
58
class
T2
>
59
struct
apply
:
mpl::type_wrap
< F<T1,T2> >{};
60
};
61
62
template
<
template
<
class
T1
,
63
class
T2
,
64
class
T3>
class
F
>
65
struct
quote3
{
66
template
<
class
T1
,
67
class
T2
,
68
class
T3>
69
struct
apply
:
mpl::type_wrap
< F<T1,T2,T3> >{};
70
};
71
72
template
<
template
<
class
T1
,
73
class
T2
,
74
class
T3,
75
class
T4>
class
F
>
76
struct
quote4
{
77
template
<
class
T1
,
78
class
T2
,
79
class
T3,
80
class
T4>
81
struct
apply
:
mpl::type_wrap
< F<T1,T2,T3,T4> >{};
82
};
83
84
template
<
template
<
class
T1
,
85
class
T2
,
86
class
T3,
87
class
T4,
88
class
T5>
class
F
>
89
struct
quote5
{
90
template
<
class
T1
,
91
class
T2
,
92
class
T3,
93
class
T4,
94
class
T5>
95
struct
apply
:
mpl::type_wrap
< F<T1,T2,T3,T4,T5> >{};
96
};
97
98
template
<
class
F>
99
struct
quote
:
quote0
<F> {};
100
101
template
<
template
<
class
T1>
class
F
,
102
class
T1
>
103
struct
quote
<
F
<
T1
> > :
quote1
<F> {};
104
105
template
<
template
<
class
T1
,
106
class
T2
>
class
F
,
107
class
T1
,
108
class
T2
>
109
struct
quote
<
F
<
T1
,
T2
> > :
quote2
<F> {};
110
111
template
<
template
<
class
T1
,
112
class
T2
,
113
class
T3>
class
F
,
114
class
T1
,
115
class
T2
,
116
class T3>
117
struct
quote
<
F
<
T1
,
T2
,T3> > :
quote3
<F> {};
118
119
template
<
template
<
class
T1
,
120
class
T2
,
121
class
T3,
122
class
T4>
class
F
,
123
class
T1
,
124
class
T2
,
125
class T3,
126
class T4>
127
struct
quote
<
F
<
T1
,
T2
,T3,T4> > :
quote4
<F> {};
128
129
template
<
template
<
class
T1
,
130
class
T2
,
131
class
T3,
132
class
T4,
133
class
T5>
class
F
,
134
class
T1
,
135
class
T2
,
136
class T3,
137
class T4,
138
class T5>
139
struct
quote
<
F
<
T1
,
T2
,T3,T4,T5> > :
quote5
<F> {};
140
141
}
// namespace mpl
142
143
}
// namespace Sacado
144
145
#endif // SACADO_MPL_QUOTE_HPP
F
Sacado::Fad::DFad< double > F
Definition:
ad_example.cpp:40
Sacado::mpl::quote5
Definition:
Sacado_mpl_quote.hpp:89
Sacado::mpl::quote4::apply
Definition:
Sacado_mpl_quote.hpp:81
Sacado_mpl_type_wrap.hpp
Sacado::mpl::quote3::apply
Definition:
Sacado_mpl_quote.hpp:69
Sacado::mpl::quote1
Definition:
Sacado_mpl_quote.hpp:49
Sacado::mpl::quote
Definition:
Sacado_mpl_quote.hpp:99
Sacado::mpl::quote2
Definition:
Sacado_mpl_quote.hpp:56
Sacado::mpl::quote3
Definition:
Sacado_mpl_quote.hpp:65
T2
#define T2(r, f)
Definition:
Sacado_rad.hpp:578
Sacado::Fad::DFad< double >
Sacado::mpl::type_wrap
Definition:
Sacado_mpl_type_wrap.hpp:51
T1
#define T1(r, f)
Definition:
Sacado_rad.hpp:603
Sacado::mpl::quote4
Definition:
Sacado_mpl_quote.hpp:76
Sacado::mpl::quote0
Definition:
Sacado_mpl_quote.hpp:44
Sacado::mpl::quote1::apply
Definition:
Sacado_mpl_quote.hpp:51
Sacado::mpl::quote0::apply
Definition:
Sacado_mpl_quote.hpp:45
Sacado::mpl::quote5::apply
Definition:
Sacado_mpl_quote.hpp:95
Sacado::mpl::quote2::apply
Definition:
Sacado_mpl_quote.hpp:59
Generated by
1.8.5