SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
specification_list.hpp File Reference
#include <tuple>
#include <utility>
#include "serif/model/specification.hpp"
#include "serif/utils/misc/concepts/filter.hpp"
Include dependency graph for specification_list.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::model::detail::InsertSpecification< Specification, utils::types::TypeList<> >
 
struct  serif::model::detail::InsertSpecification< Specification, utils::types::TypeList< Head, Tail... > >
 
struct  serif::model::detail::CanonicalSpecifications<>
 
struct  serif::model::detail::CanonicalSpecifications< Head, Tail... >
 
struct  serif::model::detail::SelectRole< Role, Specifications >
 
struct  serif::model::detail::ArgumentsMatch< utils::types::TypeList< Specifications... >, Arguments... >
 

Namespaces

namespace  serif
 
namespace  serif::model
 
namespace  serif::model::detail
 

Functions

template<ModelSpecification Left, ModelSpecification Right>
consteval bool serif::model::detail::specification_precedes ()
 Compare physical identities in the historical role, coordinate-kind, stable-name order.
 
template<ModelSpecification... Specifications>
consteval bool serif::model::detail::unique_specification_names ()
 Reject semantic collisions even when two prescriptions have different C++ types or scalar kinds.
 
template<typename... Specifications, typename... Arguments>
std::tuple< Specifications... > serif::model::detail::canonical_specifications (utils::types::TypeList< Specifications... >, Arguments &&... arguments)
 Consume the argument tuple once, moving each specification into its canonical slot once.