Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
modernization_examples.hpp File Reference

Before/After examples of C++20 concept modernization. More...

Classes

class  Feel::Examples::BlockBilinearFormOld< T >
 
class  Feel::Examples::ExprBase
 
class  Feel::Examples::IntegratorOld< iDim >
 
struct  Feel::Examples::is_iterable< T, typename >
 
struct  Feel::Examples::is_iterable< T, std::void_t< decltype(std::declval< T >().begin()), decltype(std::declval< T >().end())> >
 
class  Feel::Examples::ProductSpaceBase
 
class  Feel::Examples::ProductSpacesBase
 

Namespaces

namespace  Feel
 -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*-
 

Functions

template<typename T , typename = std::enable_if_t<std::is_base_of_v<ExprBase, T>>, typename = std::enable_if_t<std::is_arithmetic_v<typename T::value_type>>, typename = std::enable_if_t<T::rank == 0>>
auto Feel::Examples::compute_norm_old (T const &expr)
 
template<typename ExprT >
auto Feel::Examples::expr_old (ExprT const &e, std::enable_if_t< std::is_base_of_v< ExprBase, ExprT > > *=nullptr)
 
template<typename QuadType , typename Quad1Type , typename ExprType >
auto Feel::Examples::integrate_old (QuadType const &quad, Quad1Type const &quad1, ExprType const &expr, std::enable_if_t< std::is_integral< QuadType >::value &&!std::is_integral< Quad1Type >::value > *=nullptr)
 
template<typename QuadType , typename Quad1Type , typename ExprType >
auto Feel::Examples::integrate_old (QuadType const &quad, Quad1Type const &quad1, ExprType const &expr, std::enable_if_t< std::is_integral< QuadType >::value &&std::is_integral< Quad1Type >::value > *=nullptr)
 
template<typename Container >
std::enable_if_t< is_iterable_v< Container >, void > Feel::Examples::process_old (Container const &c)
 
template<typename ExprT >
auto Feel::Examples::trace_old (ExprT const &v, std::enable_if_t< std::is_base_of_v< ExprBase, ExprT > > *=nullptr)
 
template<typename ExprT >
auto Feel::Examples::vonmises_old (ExprT const &v, std::enable_if_t< std::is_base_of_v< ExprBase, ExprT > > *=nullptr)
 

Variables

template<typename T >
constexpr bool Feel::Examples::is_iterable_v = is_iterable<T>::value
 
constexpr int Feel::Examples::MESH_ELEMENTS = 0
 
constexpr int Feel::Examples::MESH_FACES = 1
 
constexpr int Feel::Examples::MESH_POINTS = 2
 

Detailed Description

Before/After examples of C++20 concept modernization.

This file demonstrates concrete improvements from replacing SFINAE with C++20 concepts in Feel++ code.