MT Core (C++)
Core library for replacing C++ standard in project usage
Loading...
Searching...
No Matches
mass.hpp
Go to the documentation of this file.
1
/*
2
3
Copyright 2025 Matthew Tolman
4
5
Licensed under the Apache License, Version 2.0 (the "License");
6
you may not use this file except in compliance with the License.
7
You may obtain a copy of the License at
8
9
http://www.apache.org/licenses/LICENSE-2.0
10
11
Unless required by applicable law or agreed to in writing, software
12
distributed under the License is distributed on an "AS IS" BASIS,
13
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
See the License for the specific language governing permissions and
15
limitations under the License.
16
17
*/
18
19
#ifndef MTCORE_UNITS_MASS_HPP
20
#define MTCORE_UNITS_MASS_HPP
21
22
#include "
mass.hpp
"
23
#include "
mtcore/units/base.hpp
"
24
25
namespace
mtcore::units
{
26
namespace
mass
{
27
constexpr
auto
attogram
=
Units<Unit<dimensions::MASS, std::atto>
>{};
28
constexpr
auto
femtogram
=
Units<Unit<dimensions::MASS, std::femto>
>{};
29
constexpr
auto
picogram
=
Units<Unit<dimensions::MASS, std::pico>
>{};
30
constexpr
auto
nanogram
=
Units<Unit<dimensions::MASS, std::nano>
>{};
31
constexpr
auto
microgram
=
Units<Unit<dimensions::MASS, std::micro>
>{};
32
constexpr
auto
milligram
=
Units<Unit<dimensions::MASS, std::milli>
>{};
33
constexpr
auto
centigram
=
Units<Unit<dimensions::MASS, std::centi>
>{};
34
constexpr
auto
decigram
=
Units<Unit<dimensions::MASS, std::deci>
>{};
35
constexpr
auto
gram
=
Units<Unit<dimensions::MASS>
>{};
36
constexpr
auto
decagram
=
Units<Unit<dimensions::MASS, std::deca>
>{};
37
constexpr
auto
hectogram
=
Units<Unit<dimensions::MASS, std::hecto>
>{};
38
constexpr
auto
kilogram
=
Units<Unit<dimensions::MASS, std::kilo>
>{};
39
constexpr
auto
megagram
=
Units<Unit<dimensions::MASS, std::mega>
>{};
40
constexpr
auto
gigagram
=
Units<Unit<dimensions::MASS, std::giga>
>{};
41
constexpr
auto
teragram
=
Units<Unit<dimensions::MASS, std::tera>
>{};
42
constexpr
auto
petagram
=
Units<Unit<dimensions::MASS, std::peta>
>{};
43
constexpr
auto
exagram
=
Units<Unit<dimensions::MASS, std::exa>
>{};
44
45
constexpr
auto
tonne
=
Units<Unit<dimensions::MASS, std::ratio<1000000>
>>{};
46
constexpr
auto
metric_ton
=
tonne
;
47
48
constexpr
auto
slug
=
Units<Unit<dimensions::MASS, std::ratio<145939, 10>
>>{};
49
constexpr
auto
pound
=
Units<Unit<dimensions::MASS, std::ratio<45359237, 100000>
>>{};
50
constexpr
auto
ounce
=
Units<Unit<dimensions::MASS, std::ratio<45359237, 1600000>
>>{};
51
constexpr
auto
dram
=
Units<Unit<dimensions::MASS, std::ratio<45359237, 25600000>
>>{};
52
constexpr
auto
grain
=
Units<Unit<dimensions::MASS, std::ratio<6479891, 100000000>
>>{};
53
constexpr
auto
hundredweight
=
Units<Unit<dimensions::MASS, std::ratio<45359237, 1000>
>>{};
54
constexpr
auto
long_hundredweight
=
Units<Unit<dimensions::MASS, std::ratio<317514659, 6250>
>>{};
55
constexpr
auto
ton
=
Units<Unit<dimensions::MASS, std::ratio<45359237, 50>
>>{};
56
constexpr
auto
long_ton
=
Units<Unit<dimensions::MASS, std::ratio<635029318, 625>
>>{};
57
58
static_assert
(1. *
slug
== 14.59390 *
kilogram
);
59
static_assert
(1. *
pound
== .45359237 *
kilogram
);
60
static_assert
(16. *
ounce
== 1. *
pound
);
61
static_assert
(16. *
dram
== 1. *
ounce
);
62
static_assert
(7000. *
grain
== 1. *
pound
);
63
static_assert
(1. *
long_hundredweight
== 112. *
pound
);
64
static_assert
(1. *
ton
== 2000. *
pound
);
65
static_assert
(1. *
long_ton
== 2240. *
pound
);
66
}
// namespace mass
67
68
MTCORE_DEF_UNIT_NAME_SI
(mass, gram, gram, g)
69
MTCORE_DEF_UNIT_NAME
(mass, slug, sl)
70
MTCORE_DEF_UNIT_NAME
(mass, pound, lb)
71
MTCORE_DEF_UNIT_NAME
(mass, ounce, oz)
72
MTCORE_DEF_UNIT_NAME
(mass, dram, dr)
73
MTCORE_DEF_UNIT_NAME
(mass, grain, gr)
74
MTCORE_DEF_UNIT_NAME_STRS
(
mass
,
hundredweight
,
"US (short) hundredweight"
,
"hundredweight"
,
"US cwt"
,
"US cwt"
,
"cwt"
,
75
""
)
76
MTCORE_DEF_UNIT_NAME_STRS
(
mass
,
long_hundredweight
,
"long hundredweight"
,
"long hundredweight"
,
"long cwt"
,
77
"long cwt"
,
"long cwt"
,
""
)
78
MTCORE_DEF_UNIT_NAME_STRS
(
mass
, ton,
"short ton"
,
"ton"
,
"short ton"
,
"short ton"
,
"ton"
,
""
)
79
MTCORE_DEF_UNIT_NAME_STRS
(
mass
, long_ton,
"long ton"
,
"long ton"
,
"ton"
,
"ton"
,
"long ton"
,
""
)
80
}
// namespace mtcore::units
81
82
#endif
// MTCORE_UNITS_MASS_HPP
mass.hpp
mtcore::units::mass
Definition
mass.hpp:26
mtcore::units::mass::gigagram
constexpr auto gigagram
Definition
mass.hpp:40
mtcore::units::mass::megagram
constexpr auto megagram
Definition
mass.hpp:39
mtcore::units::mass::long_hundredweight
constexpr auto long_hundredweight
Definition
mass.hpp:54
mtcore::units::mass::hundredweight
constexpr auto hundredweight
Definition
mass.hpp:53
mtcore::units::mass::nanogram
constexpr auto nanogram
Definition
mass.hpp:30
mtcore::units::mass::femtogram
constexpr auto femtogram
Definition
mass.hpp:28
mtcore::units::mass::ounce
constexpr auto ounce
Definition
mass.hpp:50
mtcore::units::mass::attogram
constexpr auto attogram
Definition
mass.hpp:27
mtcore::units::mass::slug
constexpr auto slug
Definition
mass.hpp:48
mtcore::units::mass::centigram
constexpr auto centigram
Definition
mass.hpp:33
mtcore::units::mass::gram
constexpr auto gram
Definition
mass.hpp:35
mtcore::units::mass::picogram
constexpr auto picogram
Definition
mass.hpp:29
mtcore::units::mass::petagram
constexpr auto petagram
Definition
mass.hpp:42
mtcore::units::mass::decigram
constexpr auto decigram
Definition
mass.hpp:34
mtcore::units::mass::long_ton
constexpr auto long_ton
Definition
mass.hpp:56
mtcore::units::mass::pound
constexpr auto pound
Definition
mass.hpp:49
mtcore::units::mass::tonne
constexpr auto tonne
Definition
mass.hpp:45
mtcore::units::mass::exagram
constexpr auto exagram
Definition
mass.hpp:43
mtcore::units::mass::ton
constexpr auto ton
Definition
mass.hpp:55
mtcore::units::mass::milligram
constexpr auto milligram
Definition
mass.hpp:32
mtcore::units::mass::grain
constexpr auto grain
Definition
mass.hpp:52
mtcore::units::mass::hectogram
constexpr auto hectogram
Definition
mass.hpp:37
mtcore::units::mass::dram
constexpr auto dram
Definition
mass.hpp:51
mtcore::units::mass::metric_ton
constexpr auto metric_ton
Definition
mass.hpp:46
mtcore::units::mass::teragram
constexpr auto teragram
Definition
mass.hpp:41
mtcore::units::mass::kilogram
constexpr auto kilogram
Definition
mass.hpp:38
mtcore::units::mass::decagram
constexpr auto decagram
Definition
mass.hpp:36
mtcore::units::mass::microgram
constexpr auto microgram
Definition
mass.hpp:31
mtcore::units
Base namespace for units.
Definition
angle.hpp:24
mtcore::units::hundredweight
long hundredweight
Definition
mass.hpp:76
mtcore::units::MTCORE_DEF_UNIT_NAME_STRS
MTCORE_DEF_UNIT_NAME_STRS(volume, fluid::us_gal, "US gallon", "gallon", "US gal", "US gal", "gal", "")
mtcore::units::long_hundredweight
long_hundredweight
Definition
mass.hpp:76
mtcore::units::Units
List of units.
Definition
units/base.hpp:80
base.hpp
MTCORE_DEF_UNIT_NAME_SI
#define MTCORE_DEF_UNIT_NAME_SI(NS, UNIT, US_NAME, ABBREV)
Definition
units/base.hpp:966
MTCORE_DEF_UNIT_NAME
#define MTCORE_DEF_UNIT_NAME(NS, UNIT, ABBREV)
Definition
units/base.hpp:915
include
core
mtcore
units
mass.hpp
Generated on Wed Jun 11 2025 16:20:21 for MT Core (C++) by
1.13.2