|
SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
|
This file contains the code to associate numeric data to a dimension. We call this a Quantity and a QuantityValue. More...
#include <type_traits>#include <compare>#include <concepts>#include <tuple>#include "serif/utils/misc/std_helper/cleaning.hpp"#include "serif/utils/misc/concepts/numeric.hpp"Classes | |
| struct | serif::dimensions::PhysicalQuantity |
| struct | serif::dimensions::ThermodynamicQuantity |
| class | serif::dimensions::QuantityValue< Quantity > |
| This is the non derivative equivalent to PartialDerivative. This associates a dimension with a value and, if that value can be determined at compile time, can be decomposed to a transparent double through .value() More... | |
| struct | serif::dimensions::IsQuantityValue< Candidate > |
| struct | serif::dimensions::IsQuantityValue< QuantityValue< Quantity > > |
| struct | serif::dimensions::QuantityOf< QuantityValue< Quantity > > |
| struct | serif::dimensions::QuantityList< Quantities > |
| struct | serif::dimensions::QuantityAt< Index, QuantityList< Quantities... > > |
Namespaces | |
| namespace | serif |
| namespace | serif::dimensions |
Concepts | |
| concept | serif::dimensions::PhysicalQuantityType |
| Is compile-time true of the QuantityCandidate can have any const / volatile stripped and if its derived from PhysicalQuantity. Note all ThermodynamicQuantities will also satisfy this concept. | |
| concept | serif::dimensions::ThermodynamicQuantityType |
| Is compile-time true of the QuantityCandidate can have any const / volatile stripped and if its derived from PhysicalQuantity (both enforced through checking PhysicalQuantityType) and then that is is also derived from ThermodynamicQuantity. Note not all physical quanties will satisfy this. | |
| concept | serif::dimensions::QuantityValueType |
| Turn those compile time structs into a concept that can be used to constrain a template parameter. | |
| concept | serif::dimensions::ThermodynamicQuantityValueType |
Typedefs | |
| template<QuantityValueType Value> | |
| using | serif::dimensions::QuantityOfT = typename QuantityOf<NeitherConstNorVolatileReference<Value>>::Type |
| template<class T> | |
| using | serif::dimensions::NeitherConstNorVolatile |
| template<class T> | |
| using | serif::dimensions::NeitherConstNorVolatileReference |
This file contains the code to associate numeric data to a dimension. We call this a Quantity and a QuantityValue.