dune-common 2.10
Loading...
Searching...
No Matches
hybridutilities.hh File Reference
#include <tuple>
#include <utility>
#include <dune/common/typetraits.hh>
#include <dune/common/typeutilities.hh>
#include <dune/common/fvector.hh>
#include <dune/common/indices.hh>
#include <dune/common/rangeutilities.hh>

Go to the source code of this file.

Classes

class  Dune::Hybrid::HybridFunctor< Functor >
 Adapter of a hybrid functor that maintains results hybrid. More...

Namespaces

namespace  Dune
 Dune namespace.
namespace  Dune::Hybrid

Functions

template<class T>
constexpr auto Dune::Hybrid::size (const T &t)
 Size query.
template<class Container, class Index>
constexpr decltype(auto) Dune::Hybrid::elementAt (Container &&c, Index &&i)
 Get element at given position from container.
template<class Begin, class End>
constexpr auto Dune::Hybrid::integralRange (const Begin &begin, const End &end)
 Create an integral range.
template<class End>
constexpr auto Dune::Hybrid::integralRange (const End &end)
 Create an integral range starting from 0.
template<class Range, class F>
constexpr void Dune::Hybrid::forEach (Range &&range, F &&f)
 Range based for loop.
template<class Range, class T, class F>
constexpr T Dune::Hybrid::accumulate (Range &&range, T value, F &&f)
 Accumulate values.
template<class Condition, class IfFunc, class ElseFunc>
decltype(auto) Dune::Hybrid::ifElse (const Condition &condition, IfFunc &&ifFunc, ElseFunc &&elseFunc)
 A conditional expression.
template<class Condition, class IfFunc>
void Dune::Hybrid::ifElse (const Condition &condition, IfFunc &&ifFunc)
 A conditional expression.
template<class Functor>
constexpr HybridFunctor< Functor > Dune::Hybrid::hybridFunctor (const Functor &)
 Returns an HybridFunctor adaptor.
template<class T1, class T2>
constexpr auto Dune::Hybrid::equals (T1 &&t1, T2 &&t2)
 Equality comparison.
template<class Cases, class Value, class Branches, class ElseBranch>
constexpr decltype(auto) Dune::Hybrid::switchCases (const Cases &cases, const Value &value, Branches &&branches, ElseBranch &&elseBranch)
 Switch statement.
template<class Cases, class Value, class Branches>
constexpr void Dune::Hybrid::switchCases (const Cases &cases, const Value &value, Branches &&branches)
 Switch statement.
template<class T, class Value, class Branches>
constexpr void Dune::Hybrid::switchCases (IntegralRange< T > range, const Value &value, Branches &&branches)
 Switch statement.

Variables

constexpr auto Dune::Hybrid::max = hybridFunctor(Impl::Max{})
 Function object that returns the greater of the given values.
constexpr auto Dune::Hybrid::min = hybridFunctor(Impl::Min{})
 Function object that returns the smaller of the given values.
constexpr auto Dune::Hybrid::plus = hybridFunctor(std::plus<>{})
 Function object for performing addition.
constexpr auto Dune::Hybrid::minus = hybridFunctor(std::minus<>{})
 Function object for performing subtraction.
constexpr auto Dune::Hybrid::equal_to = hybridFunctor(std::equal_to<>{})
 Function object for performing equality comparison.