dune-istl 2.9.0
combinedfunctor.hh
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
3// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
4// vi: set et ts=4 sw=2 sts=2:
5#ifndef DUNE_AMG_COMBINEDFUNCTOR_HH
6#define DUNE_AMG_COMBINEDFUNCTOR_HH
7
8#include <tuple>
9
10namespace Dune
11{
12 namespace Amg
13 {
14
15 template<std::size_t i>
17 {
18 template<class TT, class T>
19 static void apply(TT tuple, const T& t)
20 {
21 std::get<i-1>(tuple) (t);
23 }
24 };
25 template<>
26 struct ApplyHelper<0>
27 {
28 template<class TT, class T>
29 static void apply([[maybe_unused]] TT tuple, [[maybe_unused]] const T& t)
30 {}
31 };
32
33 template<typename T>
35 public T
36 {
37 public:
38 CombinedFunctor(const T& tuple_)
39 : T(tuple_)
40 {}
41
42 template<class T1>
43 void operator()(const T1& t)
44 {
46 }
47 };
48
49
50 } //namespace Amg
51} // namespace Dune
52#endif
Definition: allocator.hh:11
PropertyMapTypeSelector< Amg::VertexVisitedTag, Amg::PropertiesGraph< G, Amg::VertexProperties, EP, VM, EM > >::Type get(const Amg::VertexVisitedTag &tag, Amg::PropertiesGraph< G, Amg::VertexProperties, EP, VM, EM > &graph)
Definition: dependency.hh:293
Definition: combinedfunctor.hh:17
static void apply(TT tuple, const T &t)
Definition: combinedfunctor.hh:19
static void apply(TT tuple, const T &t)
Definition: combinedfunctor.hh:29
Definition: combinedfunctor.hh:36
CombinedFunctor(const T &tuple_)
Definition: combinedfunctor.hh:38
void operator()(const T1 &t)
Definition: combinedfunctor.hh:43