Reference documentation for deal.II version 9.4.1
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Variables
template_constraints.h File Reference
#include <deal.II/base/config.h>
#include <deal.II/base/complex_overloads.h>
#include <complex>
#include <utility>

Go to the source code of this file.

Classes

struct  internal::SupportsOperation::detector< Default, AlwaysVoid, Op, Args >
 
struct  internal::SupportsOperation::detector< Default, void_t< Op< Args... > >, Op, Args... >
 
struct  internal::SupportsOperation::nonesuch_base
 
struct  internal::SupportsOperation::nonesuch
 
struct  internal::TemplateConstraints::all_true< Values >
 
struct  internal::TemplateConstraints::any_true< V1, Values... >
 
struct  internal::TemplateConstraints::any_true<>
 
struct  is_base_of_all< Base, Derived >
 
struct  all_same_as< Type, Types >
 
struct  is_same_as_any_of< Type, Types >
 
struct  enable_if_all< Values >
 
struct  identity< T >
 
struct  always_return< ArgType, ValueType >
 
struct  PointerComparison
 
struct  internal::ProductTypeImpl< T, U >
 
struct  ProductType< T, U >
 
struct  internal::ProductTypeImpl< std::complex< T >, std::complex< T > >
 
struct  internal::ProductTypeImpl< std::complex< T >, std::complex< U > >
 
struct  internal::ProductTypeImpl< double, std::complex< U > >
 
struct  internal::ProductTypeImpl< std::complex< T >, double >
 
struct  internal::ProductTypeImpl< float, std::complex< U > >
 
struct  internal::ProductTypeImpl< std::complex< T >, float >
 
struct  EnableIfScalar< double >
 
struct  EnableIfScalar< float >
 
struct  EnableIfScalar< long double >
 
struct  EnableIfScalar< int >
 
struct  EnableIfScalar< unsigned int >
 
struct  EnableIfScalar< std::complex< T > >
 

Namespaces

namespace  internal
 
namespace  internal::SupportsOperation
 
namespace  internal::TemplateConstraints
 

Typedefs

template<class... >
using internal::SupportsOperation::void_t = void
 
template<class Default , template< class... > class Op, class... Args>
using internal::SupportsOperation::detected_or = detector< Default, void, Op, Args... >
 
template<template< class... > class Op, class... Args>
using internal::SupportsOperation::is_detected = typename detected_or< nonesuch, Op, Args... >::value_t
 
template<template< class... > class Op, class... Args>
using internal::SupportsOperation::detected_t = typename detected_or< nonesuch, Op, Args... >::type
 
template<class Default , template< class... > class Op, class... Args>
using internal::SupportsOperation::detected_or_t = typename detected_or< Default, Op, Args... >::type
 
template<class Expected , template< class... > class Op, class... Args>
using internal::SupportsOperation::is_detected_exact = std::is_same< Expected, detected_t< Op, Args... > >
 
template<class To , template< class... > class Op, class... Args>
using internal::SupportsOperation::is_detected_convertible = std::is_convertible< detected_t< Op, Args... >, To >
 
template<typename T >
using begin_and_end_t = decltype(std::begin(std::declval< T >()), std::end(std::declval< T >()))
 

Variables

template<template< class... > class Op, class... Args>
constexpr bool internal::is_supported_operation
 
template<typename T >
constexpr bool has_begin_and_end
 

Typedef Documentation

◆ begin_and_end_t

template<typename T >
using begin_and_end_t = decltype(std::begin(std::declval<T>()), std::end(std::declval<T>()))

A type trait that checks to see if a class behaves as an iterable container that has a beginning and an end. This implies that the class either defines the begin() and end() functions, or is a C-style array.

Definition at line 277 of file template_constraints.h.

Variable Documentation

◆ has_begin_and_end

template<typename T >
constexpr bool has_begin_and_end
constexpr
Initial value:
=
internal::is_supported_operation<begin_and_end_t, T>

Definition at line 281 of file template_constraints.h.