RIT VEXU Core API
Toggle main menu visibility
Loading...
Searching...
No Matches
number.h
1
#pragma once
2
3
class
Number :
public
quantity_base<Number, dim_none> {
4
public
:
5
typedef
quantity_base<Number, dim_none> base_type;
6
typedef
dim_none dimension;
7
constexpr
explicit
Number(
double
value = 0.0) : base_type(value) {}
8
static
constexpr
Number from_canonical(
double
value) {
return
Number(value); }
9
constexpr
double
value()
const
{
return
canonical_value(); }
10
};
11
12
template
<>
13
struct
is_quantity<Number> : std::true_type {};
14
15
Number quantity_for_dimension_probe(dim_none*,
int
);
16
17
template
<
class
Scalar>
18
using
number_arithmetic_enable_t =
typename
std::enable_if<std::is_arithmetic<Scalar>::value, Number>::type;
19
20
template
<
class
Scalar>
21
constexpr
number_arithmetic_enable_t<Scalar> operator+(
const
Number& left, Scalar right) {
22
return
Number(left.value() +
static_cast<
double
>
(right));
23
}
24
template
<
class
Scalar>
25
constexpr
number_arithmetic_enable_t<Scalar> operator+(Scalar left,
const
Number& right) {
26
return
Number(
static_cast<
double
>
(left) + right.value());
27
}
28
template
<
class
Scalar>
29
constexpr
number_arithmetic_enable_t<Scalar> operator-(
const
Number& left, Scalar right) {
30
return
Number(left.value() -
static_cast<
double
>
(right));
31
}
32
template
<
class
Scalar>
33
constexpr
number_arithmetic_enable_t<Scalar> operator-(Scalar left,
const
Number& right) {
34
return
Number(
static_cast<
double
>
(left) - right.value());
35
}
36
37
template
<>
38
struct
default_unit_for_quantity<Number> {
39
typedef
void
type;
40
};
include
core
units
number.h
Generated by
1.17.0