views.cpp serif/eos/runtime/views.hpp serif/eos/models/polytropic.hpp type_traits utility SERiFErrorCode #include"serif/eos/runtime/views.hpp" #include"serif/eos/models/polytropic.hpp" #include<type_traits> #include<utility> usingnamespaceserif::eos; usingnamespaceserif::dimensions; usingserif::utils::errors::SERiFErrorCode; static_assert(serif::eos::runtime::RuntimeEOSModel<models::Polytrope>,"PolytropicEOSshouldbeavalidruntimeEOSmodel."); static_assert(std::is_trivially_copyable_v<serif::eos::runtime::EOSView>,"BorrowedEOSviewshouldbetriviallycopyable."); static_assert(std::constructible_from<serif::eos::runtime::EOSView,constmodels::Polytrope&>,"AborrowedEOSviewshouldbeconstructiblefromaconstreferencetoaconcreteEOSmodel."); static_assert(!std::constructible_from<serif::eos::runtime::EOSView,models::Polytrope&&>,"AborrowedEOSviewmustnotbindtoatemporary"); static_assert(!std::constructible_from<serif::eos::runtime::EOSView,constmodels::Polytrope&&>,"AborrowedEOSviewmustnotbindtoaconsttemporary"); static_assert(std::same_as<decltype(std::declval<constserif::eos::runtime::EOSView&>().try_evaluate<Pressure>(DensityValue{1.0})),std::expected<PressureValue,SERiFErrorCode>>,"BorrowedEOSviewshouldreturnanexpectedforevaluation."); static_assert(std::same_as<decltype(std::declval<constserif::eos::runtime::EOSView&>().try_partial_derivative<MassDensity,SpecificEnthalpy>(SpecificEnthalpyValue{1.0})),std::expected<PartialDerivative<MassDensity,SpecificEnthalpy>,SERiFErrorCode>>,"BorrowedEOSviewshouldreturnanexpectedforpartialderivativeevaluation.");