|
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 |
|
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.