https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
CompileTimeDerivatives::CTNull< T > Class Template Reference

Template class to represent a "zero" value. More...

#include <CompileTimeDerivatives.h>

Inheritance diagram for CompileTimeDerivatives::CTNull< T >:
[legend]

Public Types

typedef CTCleanType< T > ResultType
 

Public Member Functions

 CTNull ()
 
ResultType operator() () const
 
std::string print () const
 
template<CTTag dtag>
auto D () const
 

Static Public Member Functions

static constexpr int precedence ()
 precedence should reflect C++ operator precedence exactly (higher is binding tighter)
 
static constexpr bool leftAssociative ()
 left/right associative property should reflect C++ operator properties exactly
 

Detailed Description

template<typename T>
class CompileTimeDerivatives::CTNull< T >

Template class to represent a "zero" value.

Having zeroness associated with a type enables compile time optimizations in some operators.

Definition at line 94 of file CompileTimeDerivatives.h.

Member Typedef Documentation

◆ ResultType

template<typename T >
typedef CTCleanType<T> CompileTimeDerivatives::CTNull< T >::ResultType

Definition at line 98 of file CompileTimeDerivatives.h.

Constructor & Destructor Documentation

◆ CTNull()

template<typename T >
CompileTimeDerivatives::CTNull< T >::CTNull ( )
inline

Definition at line 97 of file CompileTimeDerivatives.h.

97{}

Member Function Documentation

◆ D()

template<typename T >
template<CTTag dtag>
auto CompileTimeDerivatives::CTNull< T >::D ( ) const
inline

Definition at line 104 of file CompileTimeDerivatives.h.

105 {
106 return CTNull<ResultType>();
107 }

◆ leftAssociative()

static constexpr bool CompileTimeDerivatives::CTBase::leftAssociative ( )
inlinestaticconstexprinherited

left/right associative property should reflect C++ operator properties exactly

Definition at line 31 of file CompileTimeDerivatives.h.

31{ return false; }

◆ operator()()

template<typename T >
ResultType CompileTimeDerivatives::CTNull< T >::operator() ( ) const
inline

Definition at line 100 of file CompileTimeDerivatives.h.

100{ return ResultType(0); }

◆ precedence()

static constexpr int CompileTimeDerivatives::CTBase::precedence ( )
inlinestaticconstexprinherited

precedence should reflect C++ operator precedence exactly (higher is binding tighter)

Definition at line 29 of file CompileTimeDerivatives.h.

29{ return 0; }

◆ print()

template<typename T >
std::string CompileTimeDerivatives::CTNull< T >::print ( ) const
inline

Definition at line 101 of file CompileTimeDerivatives.h.

101{ return "0"; }

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