https://mooseframework.inl.gov
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) More...
 
static constexpr bool leftAssociative ()
 left/right associative property should reflect C++ operator properties exactly More...
 

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 ( )
inlinestaticinherited

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 ( )
inlinestaticinherited

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: