3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
state.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3/*****************************************************************************
4 * See the file COPYING for full copying permissions. *
5 * *
6 * This program is free software: you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation, either version 3 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
18 *****************************************************************************/
24#ifndef DUMUX_TYPETRAITS_STATE_HH
25#define DUMUX_TYPETRAITS_STATE_HH
26
27#include <dune/common/std/type_traits.hh>
28
29namespace Dumux::Detail {
30
33{
34 template<class PrimaryVariables>
35 auto operator()(PrimaryVariables&& priVars)
36 -> decltype(priVars.state())
37 {}
38};
39
40template<class P>
41using DetectPriVarsHaveState = decltype(std::declval<P>().state());
42
43template<class P>
44constexpr inline bool priVarsHaveState()
45{ return Dune::Std::is_detected<DetectPriVarsHaveState, P>::value; }
46
47} // end namespace Dumux::Detail
48
49#endif
Distance implementation details.
Definition: cvfelocalresidual.hh:37
constexpr bool priVarsHaveState()
Definition: state.hh:44
decltype(std::declval< P >().state()) DetectPriVarsHaveState
Definition: state.hh:41
helper struct detecting if a PrimaryVariables object has a state() function
Definition: state.hh:33
auto operator()(PrimaryVariables &&priVars) -> decltype(priVars.state())
Definition: state.hh:35