Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JMATH::JNumber< T > Struct Template Reference

Simple wrapper around template data type to ensure that zero is the default value. More...

#include <JNumber.hh>

Inheritance diagram for JMATH::JNumber< T >:
JMATH::JMath< JNumber< T > > JLANG::JComparable< JFirst_t, JSecond_t >

Public Member Functions

 JNumber ()
 Default constructor.
 
 JNumber (typename JClass< T >::argument_type value)
 Constructor.
 
 operator const T & () const
 Type conversion.
 
 operator T& ()
 Type conversion.
 
JNumbernegate ()
 Negate number.
 
JNumberadd (const JNumber &number)
 Add number.
 
JNumbersub (const JNumber &number)
 Subtract number.
 
JNumbermul (const double factor)
 Scale number.
 
JNumberdiv (const double factor)
 Scale number.
 
bool less (const JNumber &number) const
 Less than.
 
JNumber< T > & mul (const JSecond_t &object)
 Multiply with object.
 

Public Attributes

value
 

Friends

std::ostream & operator>> (std::ostream &in, JNumber &number)
 Read number from input stream.
 
std::ostream & operator<< (std::ostream &out, const JNumber &number)
 Write number to output stream.
 

Detailed Description

template<class T>
struct JMATH::JNumber< T >

Simple wrapper around template data type to ensure that zero is the default value.

Definition at line 32 of file JMath/JNumber.hh.

Constructor & Destructor Documentation

◆ JNumber() [1/2]

template<class T >
JMATH::JNumber< T >::JNumber ( )
inline

Default constructor.

Definition at line 39 of file JMath/JNumber.hh.

39 :
40 value(getZero<T>())
41 {}

◆ JNumber() [2/2]

template<class T >
JMATH::JNumber< T >::JNumber ( typename JClass< T >::argument_type value)
inline

Constructor.

Parameters
valuevalue

Definition at line 49 of file JMath/JNumber.hh.

49 :
51 {}

Member Function Documentation

◆ operator const T &()

template<class T >
JMATH::JNumber< T >::operator const T & ( ) const
inline

Type conversion.

Returns
value

Definition at line 59 of file JMath/JNumber.hh.

60 {
61 return value;
62 }

◆ operator T&()

template<class T >
JMATH::JNumber< T >::operator T& ( )
inline

Type conversion.

Returns
value

Definition at line 70 of file JMath/JNumber.hh.

71 {
72 return value;
73 }

◆ negate()

template<class T >
JNumber & JMATH::JNumber< T >::negate ( )
inline

Negate number.

Returns
this number

Definition at line 81 of file JMath/JNumber.hh.

82 {
83 value = -value;
84
85 return *this;
86 }

◆ add()

template<class T >
JNumber & JMATH::JNumber< T >::add ( const JNumber< T > & number)
inline

Add number.

Parameters
numbernumber
Returns
this number

Definition at line 95 of file JMath/JNumber.hh.

96 {
97 value += number.value;
98
99 return *this;
100 }

◆ sub()

template<class T >
JNumber & JMATH::JNumber< T >::sub ( const JNumber< T > & number)
inline

Subtract number.

Parameters
numbernumber
Returns
this number

Definition at line 109 of file JMath/JNumber.hh.

110 {
111 value -= number.value;
112
113 return *this;
114 }

◆ mul() [1/2]

template<class T >
JNumber & JMATH::JNumber< T >::mul ( const double factor)
inline

Scale number.

Parameters
factormultiplication factor
Returns
this number

Definition at line 123 of file JMath/JNumber.hh.

124 {
125 value *= factor;
126
127 return *this;
128 }

◆ div()

template<class T >
JNumber & JMATH::JNumber< T >::div ( const double factor)
inline

Scale number.

Parameters
factordivision factor
Returns
this number

Definition at line 137 of file JMath/JNumber.hh.

138 {
139 value /= factor;
140
141 return *this;
142 }

◆ less()

template<class T >
bool JMATH::JNumber< T >::less ( const JNumber< T > & number) const
inline

Less than.

Parameters
numbernumber
Returns
true if number is less than given number; else false

Definition at line 151 of file JMath/JNumber.hh.

152 {
153 return value < number.value;
154 }

◆ mul() [2/2]

JNumber< T > & JMATH::JMath< JNumber< T >, JSecond_t >::mul ( const JSecond_t & object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 354 of file JMath.hh.

355 {
356 return static_cast<JFirst_t&>(*this) = JFirst_t().mul(static_cast<const JFirst_t&>(*this), object);
357 }

Friends And Related Symbol Documentation

◆ operator>>

template<class T >
std::ostream & operator>> ( std::ostream & in,
JNumber< T > & number )
friend

Read number from input stream.

Parameters
ininput stream
numbernumber
Returns
input stream

Definition at line 164 of file JMath/JNumber.hh.

165 {
166 return in >> number.value;
167 }

◆ operator<<

template<class T >
std::ostream & operator<< ( std::ostream & out,
const JNumber< T > & number )
friend

Write number to output stream.

Parameters
outoutput stream
numbernumber
Returns
output stream

Definition at line 177 of file JMath/JNumber.hh.

178 {
179 return out << number.value;
180 }

Member Data Documentation

◆ value

template<class T >
T JMATH::JNumber< T >::value

Definition at line 183 of file JMath/JNumber.hh.


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