Domain concepts (details)¶
Table of Contents
Domain¶
-
template<typename
D>
conceptDomain¶ - Refines the
template <typename T> Regularconcept. Dom::point_typemodelstemplate <typename Pnt> Pointconcept.Dom::const_point_rangemodels thetemplate <typename BidirRng> BidirectionalRangeconceptDom::codomain_typemodelstemplate <typename Val> Valueconcept, is non-const and is not a reference.Domprovides methods has, shape, empty, is_continuous, is_discrete and points.
Notation
-
type
Dom¶
Valid Expressions
dom()returns an instance ofDom.cdom()returns an instance ofconst Dom.dom_cpy(dom)returns an instance ofDom.dom_cpy(cdom)returns an instance ofDom.dom_cpy(move(dom))returns an instance ofDom.dom_cpy = domreturns an instance ofDom&.dom_cpy = cdomreturns an instance ofDom&.dom_cpy = move(dom)returns an instance ofDom&.lhs == rhsreturn-type modelstemplate <typename B> Boolean.lhs != rhsreturn-type modelstemplate <typename B> Boolean.rhs == lhsreturn-type modelstemplate <typename B> Boolean.rhs != lhsreturn-type modelstemplate <typename B> Boolean.cdom.has(p)return-type modelstemplate <typename B> Boolean.cdom.empty()return-type modelstemplate <typename B> Boolean.cdom.is_continuous()return-type modelstemplate <typename B> Boolean.cdom.is_discrete()return-type modelstemplate <typename B> Boolean.cdom.points()returnsconst_point_range.
Possible implementation
template<typename D, Dom = remove_cvref<D>> concept Domain = Regular<Dom> && requires { typename Dom::point_type; typename Dom::const_point_range; typename Dom::codomain_type; } && Point<Dom::point_type> && BidirectionalRange<Dom::const_point_range> && Value<Dom::codomain_type> && Same<const Dom::point_type, Dom::const_point_range::value_type> && !is_const_v<Dom::codomain_type> && !is_reference_v<Dom::codomain_type> && requires(const Dom cdom, Dom::point_type p) { { cdom.has(p) } -> bool; { cdom.empty() } -> bool; { cdom.is_continuous() } -> bool; { cdom.is_discrete() } -> bool; { cdom.points() } -> Dom::const_point_range; };
- Refines the