Sacado Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
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 <type_traits>
34
35
#include "
Sacado_mpl_none.hpp
"
36
#include "
Sacado_mpl_begin.hpp
"
37
#include "
Sacado_mpl_end.hpp
"
38
#include "
Sacado_mpl_deref.hpp
"
39
#include "
Sacado_mpl_next.hpp
"
40
#include "
Sacado_mpl_if.hpp
"
41
42
namespace
Sacado
{
43
44
namespace
mpl
{
45
46
template
<
class
Seq,
class
T>
47
class
TypeSequenceDoesNotContainType
{};
48
49
template
<
class
Seq,
50
class
T
,
51
class
Iter1 =
typename
mpl::begin<Seq>::type
,
52
class
Iter2 =
typename
mpl::end<Seq>::type
>
53
struct
find
{
54
typedef
typename
55
mpl::mpl_if< std::is_same<typename mpl::deref<Iter1>::type
,
T
>,
56
Iter1,
57
find<Seq, T, typename mpl::next<Iter1>::type
,
58
Iter2> >
::type
type
;
59
static
const
int
value
= type::value;
60
};
61
62
template
<
class
Seq,
class
T,
class
Iter1>
63
struct
find
<Seq,
T
, Iter1, Iter1> {
64
static
const
int
value
=
TypeSequenceDoesNotContainType<Seq,T>::value
;
65
};
66
67
}
68
69
}
70
71
#endif
// SACADO_MPL_FIND_HPP
Sacado_mpl_begin.hpp
Sacado_mpl_deref.hpp
Sacado_mpl_end.hpp
Sacado_mpl_if.hpp
Sacado_mpl_next.hpp
Sacado_mpl_none.hpp
T
#define T
Definition
Sacado_rad.hpp:573
Sacado::mpl::TypeSequenceDoesNotContainType
Definition
Sacado_mpl_find.hpp:47
Sacado::mpl
Definition
Sacado_mpl_apply.hpp:41
Sacado
Definition
Sacado_mpl_apply.hpp:39
Sacado::mpl::begin
Definition
Sacado_mpl_begin.hpp:43
Sacado::mpl::end
Definition
Sacado_mpl_end.hpp:43
Sacado::mpl::find< Seq, T, Iter1, Iter1 >::value
static const int value
Definition
Sacado_mpl_find.hpp:64
Sacado::mpl::find
Definition
Sacado_mpl_find.hpp:53
Sacado::mpl::find::value
static const int value
Definition
Sacado_mpl_find.hpp:59
Sacado::mpl::find::type
mpl::mpl_if< std::is_same< typenamempl::deref< Iter1 >::type, T >, Iter1, find< Seq, T, typenamempl::next< Iter1 >::type, Iter2 > >::type type
Definition
Sacado_mpl_find.hpp:58
Sacado::mpl::mpl_if
Definition
Sacado_mpl_if.hpp:46
Generated by
1.17.0