Dune-Functions 2.11
Loading...
Searching...
No Matches
utility.hh File Reference
#include <utility>
#include <type_traits>
#include <dune/common/overloadset.hh>
#include <dune/common/indices.hh>
#include <dune/functions/common/functionconcepts.hh>

Go to the source code of this file.

Classes

struct  Dune::Functions::LastType< T >
 Get last entry of type list. More...
struct  Dune::Functions::RotateTuple< T >
 Rotate type list by one, such that last entry is moved to first position. More...

Namespaces

namespace  Dune
namespace  Dune::Functions

Typedefs

template<template< class... > class T, class ArgTuple>
using Dune::Functions::ExpandTuple = typename Imp::ExpandTupleHelper<T, ArgTuple>::Type
 Expand tuple arguments as template arguments.
template<template< class... > class F, class... Tuples>
using Dune::Functions::TransformTuple = typename Imp::TransformTupleHelper<F, Tuples...>::Type
 Transform tuple types argument using type-functor.
template<class IntegerSequence>
using Dune::Functions::IntegerSequenceTuple = typename Imp::IntegerSequenceTupleHelper<IntegerSequence>::Type
 Transform integer_sequence<I,k...> to tuple<integral_constant<I,k>...>.

Functions

template<class F, class size_type, size_type firstValue, class... Args>
auto Dune::Functions::forwardAsStaticInteger (std::integer_sequence< size_type, firstValue > values, const size_type &i, F &&f, Args &&... args) -> decltype(f(std::integral_constant< size_type, firstValue >(), std::forward< Args >(args)...))
template<class F, class size_type, size_type firstValue, size_type secondValue, size_type... otherValues, class... Args>
auto Dune::Functions::forwardAsStaticInteger (std::integer_sequence< size_type, firstValue, secondValue, otherValues... > values, const size_type i, F &&f, Args &&... args) -> decltype(f(std::integral_constant< size_type, firstValue >(), std::forward< Args >(args)...))
template<std::size_t end, class F, class size_type, class... Args>
auto Dune::Functions::forwardAsStaticIndex (const size_type &i, F &&f, Args &&... args) -> decltype(f(Dune::Indices::_0, std::forward< Args >(args)...))
 Transform dynamic index to static index_constant.
template<class F, class... T>
auto Dune::Functions::transformTuple (F &&f, const std::tuple< T... > &tuple) -> decltype(Imp::transformTupleHelper(std::forward< F >(f), tuple, std::index_sequence_for< T... >{}))
 Transform tuple value using a functor.
template<class F, class... T1, class... T2>
auto Dune::Functions::transformTuple (F &&f, const std::tuple< T1... > &tuple1, const std::tuple< T2... > &tuple2) -> decltype(Imp::transformTupleHelper(std::forward< F >(f), tuple1, tuple2, std::index_sequence_for< T1... >{}))
 Transform tuple value using a binary functor.
template<class Expression>
auto Dune::Functions::callableCheck (Expression f)
 Create a predicate for checking validity of expressions.
template<class Check>
auto Dune::Functions::negatePredicate (Check check)
 Negate given predicate.
template<class T>
auto Dune::Functions::forwardCapture (T &&t)
 Create a capture object for perfect forwarding.