Reference documentation for deal.II version 9.6.2
 
\(\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::detector< Default, void_t< Op< Args... > >, Op, Args... > Struct Template Reference

#include <deal.II/base/template_constraints.h>

Inheritance diagram for internal::SupportsOperation::detector< Default, void_t< Op< Args... > >, Op, Args... >:

Public Types

using value_t = std::true_type
 
using type = Op<Args...>
 
using value_t
 
using type
 

Detailed Description

template<class Default, template< class... > class Op, class... Args>
struct internal::SupportsOperation::detector< Default, void_t< Op< Args... > >, Op, Args... >

A specialization of the general template.

The trick this class uses is that, just like the general template, its second argument is always void, but here it is written as void_t<Op<Args...>> and consequently the compiler will only select this specialization if Op<Args...> is in fact a valid type. This means that the operation we seek to understand is indeed supported.

This specialization then declares member variables and types according to the successful detection.

Definition at line 75 of file template_constraints.h.

Member Typedef Documentation

◆ value_t [1/2]

template<class Default, template< class... > class Op, class... Args>
using internal::SupportsOperation::detector< Default, void_t< Op< Args... > >, Op, Args... >::value_t = std::true_type

Definition at line 77 of file template_constraints.h.

◆ type [1/2]

template<class Default, template< class... > class Op, class... Args>
using internal::SupportsOperation::detector< Default, void_t< Op< Args... > >, Op, Args... >::type = Op<Args...>

Definition at line 78 of file template_constraints.h.

◆ value_t [2/2]

using internal::SupportsOperation::detector< Default, void_t< Op< Args... > >, Op, Args >::value_t

Definition at line 58 of file template_constraints.h.

◆ type [2/2]

using internal::SupportsOperation::detector< Default, void_t< Op< Args... > >, Op, Args >::type

Definition at line 59 of file template_constraints.h.


The documentation for this struct was generated from the following file: