Reference documentation for deal.II version GIT relicensing-756-gc37f912904 2024-05-25 08:20:01+00:00
\(\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
Public Types | List of all members
internal::SupportsOperation::detector< Default, void_t< Op< Args... > >, Op, Args... > Struct Template Reference

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

Public Types

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

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

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

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.


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