Reference documentation for deal.II version 9.6.0
\(\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
internal::SupportsOperation Namespace Reference

Classes

struct  detector
 
struct  detector< Default, void_t< Op< Args... > >, Op, Args... >
 
struct  nonesuch
 
struct  nonesuch_base
 

Typedefs

template<class... >
using void_t = void
 
template<class Default , template< class... > class Op, class... Args>
using detected_or = detector<Default, void, Op, Args...>
 
template<template< class... > class Op, class... Args>
using is_detected = typename detected_or<nonesuch, Op, Args...>::value_t
 
template<template< class... > class Op, class... Args>
using detected_t = typename detected_or<nonesuch, Op, Args...>::type
 
template<class Default , template< class... > class Op, class... Args>
using detected_or_t = typename detected_or<Default, Op, Args...>::type
 
template<class Expected , template< class... > class Op, class... Args>
using is_detected_exact = std::is_same<Expected, detected_t<Op, Args...>>
 
template<class To , template< class... > class Op, class... Args>
using is_detected_convertible
 

Detailed Description

A namespace used to declare the machinery for detecting whether a specific class supports an operation. This approach simulates C++20-style concepts with language standards before C++20.

Typedef Documentation

◆ void_t

template<class... >
using internal::SupportsOperation::void_t = void

Definition at line 43 of file template_constraints.h.

◆ detected_or

template<class Default , template< class... > class Op, class... Args>
using internal::SupportsOperation::detected_or = detector<Default, void, Op, Args...>

Definition at line 102 of file template_constraints.h.

◆ is_detected

template<template< class... > class Op, class... Args>
using internal::SupportsOperation::is_detected = typename detected_or<nonesuch, Op, Args...>::value_t

Definition at line 105 of file template_constraints.h.

◆ detected_t

template<template< class... > class Op, class... Args>
using internal::SupportsOperation::detected_t = typename detected_or<nonesuch, Op, Args...>::type

Definition at line 108 of file template_constraints.h.

◆ detected_or_t

template<class Default , template< class... > class Op, class... Args>
using internal::SupportsOperation::detected_or_t = typename detected_or<Default, Op, Args...>::type

Definition at line 111 of file template_constraints.h.

◆ is_detected_exact

template<class Expected , template< class... > class Op, class... Args>
using internal::SupportsOperation::is_detected_exact = std::is_same<Expected, detected_t<Op, Args...>>

Definition at line 114 of file template_constraints.h.

◆ is_detected_convertible

template<class To , template< class... > class Op, class... Args>
using internal::SupportsOperation::is_detected_convertible
Initial value:
std::is_convertible<detected_t<Op, Args...>, To>
typename detected_or< nonesuch, Op, Args... >::type detected_t

Definition at line 117 of file template_constraints.h.