Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
newton_add_missing.h File Reference

Go to the source code of this file.

Classes

class  add_adapt< Problem, std::true_type >
 
class  add_adapt< Problem, std::false_type >
 
class  add_refresh< Problem, std::true_type >
 
class  add_refresh< Problem, std::false_type >
 
class  add_direction< Problem, std::true_type >
 
class  add_direction< Problem, std::false_type >
 
class  add_space_norm< Problem, std::true_type >
 
class  add_space_norm< Problem, std::false_type >
 
class  add_dual_space_norm< Problem, std::true_type >
 
class  add_dual_space_norm< Problem, std::false_type >
 
class  add_missing_damped_newton< Problem >
 
class  add_missing_continuation< Problem >
 

Namespaces

namespace  rheolef
 This file is part of Rheolef.
 
namespace  rheolef::details
 

Macros

#define _RHEOLEF_has_inherited_member_macro(NAME)
 

Functions

 _RHEOLEF_has_inherited_member_macro (adapt) template< class Problem
 
 _RHEOLEF_has_inherited_member_macro (refresh) template< class Problem
 
 _RHEOLEF_has_inherited_member_macro (direction) template< class Problem
 
 _RHEOLEF_has_inherited_member_macro (space_norm) template< class Problem
 
 _RHEOLEF_has_inherited_member_macro (dual_space_norm) template< class Problem
 

Macro Definition Documentation

◆ _RHEOLEF_has_inherited_member_macro

#define _RHEOLEF_has_inherited_member_macro (   NAME)
Value:
template <typename Type> \
class has_inherited_member_##NAME { \
class yes { char m;}; \
class no { yes m[2];}; \
struct base_mixin { void NAME(){} }; \
struct base : public Type, public base_mixin {}; \
template <typename T, T t> class helper{}; \
template <typename U> \
static no deduce(U*, helper<void (base_mixin::*)(), &U::NAME>* = 0); \
static yes deduce(...); \
public: \
static const bool value = sizeof(yes) == sizeof(deduce((base*)(0))); \
typedef std::integral_constant<bool, value> type; \
};

Definition at line 46 of file newton_add_missing.h.