Reference documentation for deal.II version GIT 3e82abc508 2023-06-09 03:50: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\}}\)
Functions
std_cxx17 Namespace Reference

Functions

double cyl_bessel_j (double nu, double x)
 
float cyl_bessel_jf (float nu, float x)
 
long double cyl_bessel_jl (long double nu, long double x)
 
double legendre (unsigned int l, double x)
 
float legendre (unsigned int l, float x)
 
long double legendre (unsigned int l, long double x)
 
float legendref (unsigned int l, float x)
 
long double legendrel (unsigned int l, long double x)
 
template<typename F , typename Tuple , size_t... S>
auto apply_impl (F &&fn, Tuple &&t, std::index_sequence< S... >) -> decltype(std::forward< F >(fn)(std::get< S >(std::forward< Tuple >(t))...))
 
template<typename F , typename Tuple >
auto apply (F &&fn, Tuple &&t) -> decltype(apply_impl(std::forward< F >(fn), std::forward< Tuple >(t), std::make_index_sequence< std::tuple_size< typename std::remove_reference< Tuple >::type >::value >()))
 
template<typename T , typename... Ts>
bool holds_alternative (const boost::variant< Ts... > &v) noexcept
 

Detailed Description

deal.II currently only requires a C++14-conforming compiler, but there are a number of functions and classes from the C++17 standard that are easy to provide also in case the compiler only supports C++14. These are collected in the current namespace.

The most notable example is the std::optional class that was introduced to C++ starting with the C++17 standard.

There are other small additions in this namespace that allow us to use C++17 features at this point already, even though we don't require a C++17-compliant compiler.

Note
If the compiler in use actually does support C++17, then the contents of this namespace are simply imported classes and functions from namespace std. That is, we fall back to what the compiler provides, rather than our own implementations.

Function Documentation

◆ cyl_bessel_j()

double std_cxx17::cyl_bessel_j ( double  nu,
double  x 
)
inline

Definition at line 45 of file cmath.h.

◆ cyl_bessel_jf()

float std_cxx17::cyl_bessel_jf ( float  nu,
float  x 
)
inline

Definition at line 53 of file cmath.h.

◆ cyl_bessel_jl()

long double std_cxx17::cyl_bessel_jl ( long double  nu,
long double  x 
)
inline

Definition at line 61 of file cmath.h.

◆ legendre() [1/3]

double std_cxx17::legendre ( unsigned int  l,
double  x 
)
inline

Definition at line 75 of file cmath.h.

◆ legendre() [2/3]

float std_cxx17::legendre ( unsigned int  l,
float  x 
)
inline

Definition at line 85 of file cmath.h.

◆ legendre() [3/3]

long double std_cxx17::legendre ( unsigned int  l,
long double  x 
)
inline

Definition at line 95 of file cmath.h.

◆ legendref()

float std_cxx17::legendref ( unsigned int  l,
float  x 
)
inline

Definition at line 105 of file cmath.h.

◆ legendrel()

long double std_cxx17::legendrel ( unsigned int  l,
long double  x 
)
inline

Definition at line 115 of file cmath.h.

◆ apply_impl()

template<typename F , typename Tuple , size_t... S>
auto std_cxx17::apply_impl ( F &&  fn,
Tuple &&  t,
std::index_sequence< S... >   
) -> decltype(std::forward<F>(fn)(std::get<S>(std::forward<Tuple>(t))...))

Definition at line 28 of file tuple.h.

◆ apply()

template<typename F , typename Tuple >
auto std_cxx17::apply ( F &&  fn,
Tuple &&  t 
) -> decltype(apply_impl( std::forward<F>(fn), std::forward<Tuple>(t), std::make_index_sequence< std::tuple_size<typename std::remove_reference<Tuple>::type>::value>()))

Definition at line 36 of file tuple.h.

◆ holds_alternative()

template<typename T , typename... Ts>
bool std_cxx17::holds_alternative ( const boost::variant< Ts... > &  v)
noexcept

Definition at line 35 of file variant.h.