Sacado Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Sacado_mpl_is_placeholder.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_IS_PLACEHOLDER_HPP
33 #define SACADO_MPL_IS_PLACEHOLDER_HPP
34 
36 #include "Sacado_mpl_none.hpp"
37 
38 namespace Sacado {
39 
40  namespace mpl {
41 
42  template <class F>
43  struct is_placeholder {
44  static const bool value = false;
45  };
46  template <int N>
47  struct is_placeholder< arg<N> > {
48  static const bool value = true;
49  };
50  template <template <class T1> class F,
51  class T1>
52  struct is_placeholder< F<T1> > {
53  static const bool value = is_placeholder<T1>::value;
54  };
55  template <template <class T1, class T2> class F,
56  class T1,
57  class T2>
58  struct is_placeholder< F<T1,T2> > {
59  static const bool value =
62  };
63  template <template <class T1, class T2, class T3> class F,
64  class T1,
65  class T2,
66  class T3>
67  struct is_placeholder< F<T1,T2,T3> > {
68  static const bool value =
72  };
73  template <template <class T1, class T2, class T3, class T4> class F,
74  class T1,
75  class T2,
76  class T3,
77  class T4>
78  struct is_placeholder< F<T1,T2,T3,T4> > {
79  static const bool value =
84  };
85  template <template <class T1, class T2, class T3, class T4, class T5> class F,
86  class T1,
87  class T2,
88  class T3,
89  class T4,
90  class T5>
91  struct is_placeholder< F<T1,T2,T3,T4,T5> > {
92  static const bool value =
98  };
99 
100  } // namespace mpl
101 
102 } // namespace Sacado
103 
104 #endif // SACADO_MPL_IS_PLACEHOLDER_HPP
Sacado::Fad::DFad< double > F
Definition: ad_example.cpp:40
#define T2(r, f)
Definition: Sacado_rad.hpp:578
#define T1(r, f)
Definition: Sacado_rad.hpp:603