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_find.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Sacado Package
5
// Copyright (2006) Sandia Corporation
6
//
7
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
8
// the U.S. Government retains certain rights in this software.
9
//
10
// This library is free software; you can redistribute it and/or modify
11
// it under the terms of the GNU Lesser General Public License as
12
// published by the Free Software Foundation; either version 2.1 of the
13
// License, or (at your option) any later version.
14
//
15
// This library is distributed in the hope that it will be useful, but
16
// WITHOUT ANY WARRANTY; without even the implied warranty of
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
// Lesser General Public License for more details.
19
//
20
// You should have received a copy of the GNU Lesser General Public
21
// License along with this library; if not, write to the Free Software
22
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
23
// USA
24
// Questions? Contact David M. Gay (dmgay@sandia.gov) or Eric T. Phipps
25
// (etphipp@sandia.gov).
26
//
27
// ***********************************************************************
28
// @HEADER
29
30
#ifndef SACADO_MPL_FIND_HPP
31
#define SACADO_MPL_FIND_HPP
32
33
#include "
Sacado_mpl_none.hpp
"
34
#include "
Sacado_mpl_begin.hpp
"
35
#include "
Sacado_mpl_end.hpp
"
36
#include "
Sacado_mpl_deref.hpp
"
37
#include "
Sacado_mpl_next.hpp
"
38
#include "
Sacado_mpl_is_same.hpp
"
39
#include "
Sacado_mpl_if.hpp
"
40
41
namespace
Sacado {
42
43
namespace
mpl {
44
45
template
<
class
Seq,
class
T>
46
class
TypeSequenceDoesNotContainType
{};
47
48
template
<
class
Seq,
49
class
T
,
50
class
Iter1 =
typename
mpl::begin<Seq>::type
,
51
class
Iter2 =
typename
mpl::end<Seq>::type
>
52
struct
find
{
53
typedef
typename
54
mpl::mpl_if< mpl::is_same<typename mpl::deref<Iter1>::type
,
T
>,
55
Iter1,
56
find<Seq, T, typename mpl::next<Iter1>::type
,
57
Iter2> >
::type
type
;
58
static
const
int
value
= type::value;
59
};
60
61
template
<
class
Seq,
class
T,
class
Iter1>
62
struct
find
<Seq,
T
, Iter1, Iter1> {
63
static
const
int
value
=
TypeSequenceDoesNotContainType<Seq,T>::value
;
64
};
65
66
}
67
68
}
69
70
#endif // SACADO_MPL_FIND_HPP
Sacado_mpl_begin.hpp
Sacado_mpl_deref.hpp
Sacado_mpl_if.hpp
Sacado::mpl::TypeSequenceDoesNotContainType
Definition:
Sacado_mpl_find.hpp:46
Sacado::mpl::end
Definition:
Sacado_mpl_end.hpp:42
Sacado_mpl_end.hpp
T
#define T
Definition:
Sacado_rad.hpp:573
Sacado_mpl_is_same.hpp
Sacado::mpl::begin
Definition:
Sacado_mpl_begin.hpp:42
Sacado::mpl::find::value
static const int value
Definition:
Sacado_mpl_find.hpp:58
Sacado::mpl::find::type
mpl::mpl_if< mpl::is_same< typename mpl::deref< Iter1 >::type, T >, Iter1, find< Seq, T, typename mpl::next< Iter1 >::type, Iter2 > >::type type
Definition:
Sacado_mpl_find.hpp:57
Sacado::mpl::find
Definition:
Sacado_mpl_find.hpp:52
Sacado::mpl::mpl_if
Definition:
Sacado_mpl_if.hpp:45
Sacado_mpl_next.hpp
Sacado_mpl_none.hpp
Generated by
1.8.5