€cdocutils.nodes
document
q)q}q(U nametypesq}q(X! generic programming in conceptc++qˆX [n2081] conceptsqˆX conceptc++ concept webqˆX conceptsq NuUsubstitution_defsq
}qUparse_messagesq]q
Ucurrent_sourceqNU
decorationqNUautofootnote_startqKUnameidsq}q(hUgeneric-programming-in-conceptcqhUn2081-conceptsqhUconceptc-concept-webqh UconceptsquUchildrenq]qcdocutils.nodes
section
q)q}q(U rawsourceqU UparentqhUsourceqX. /root/project/libs/gil/doc/design/concepts.rstqUtagnameq Usectionq!U
attributesq"}q#(Udupnamesq$]Uclassesq%]Ubackrefsq&]Uidsq']q(haUnamesq)]q*h auUlineq+KUdocumentq,hh]q-(cdocutils.nodes
title
q.)q/}q0(hX Conceptsq1hhhhh Utitleq2h"}q3(h$]h%]h&]h']h)]uh+Kh,hh]q4cdocutils.nodes
Text
q5X Conceptsq6…q7}q8(hh1hh/ubaubcdocutils.nodes
paragraph
q9)q:}q;(hXª All constructs in GIL are models of GIL concepts. A *concept* is a set of
requirements that a type (or a set of related types) must fulfill to be used
correctly in generic algorithms. The requirements include syntactic and
algorithmic guarantees. For example, GIL class ``pixel`` is a model of GIL
``PixelConcept``. The user may substitute the pixel class with one of their
own, and, as long as it satisfies the requirements of ``PixelConcept``,
all other GIL classes and algorithms can be used with it.
See more about concepts is avaialble at
`Generic Programming in ConceptC++ `_hhhhh U paragraphq(h5X4 All constructs in GIL are models of GIL concepts. A q?…q@}qA(hX4 All constructs in GIL are models of GIL concepts. A hh:ubcdocutils.nodes
emphasis
qB)qC}qD(hX *concept*h"}qE(h$]h%]h&]h']h)]uhh:h]qFh5X conceptqG…qH}qI(hU hhCubah UemphasisqJubh5XÑ is a set of
requirements that a type (or a set of related types) must fulfill to be used
correctly in generic algorithms. The requirements include syntactic and
algorithmic guarantees. For example, GIL class qK…qL}qM(hXÑ is a set of
requirements that a type (or a set of related types) must fulfill to be used
correctly in generic algorithms. The requirements include syntactic and
algorithmic guarantees. For example, GIL class hh:ubcdocutils.nodes
literal
qN)qO}qP(hX ``pixel``h"}qQ(h$]h%]h&]h']h)]uhh:h]qRh5X pixelqS…qT}qU(hU hhOubah UliteralqVubh5X is a model of GIL
qW…qX}qY(hX is a model of GIL
hh:ubhN)qZ}q[(hX ``PixelConcept``h"}q\(h$]h%]h&]h']h)]uhh:h]q]h5X PixelConceptq^…q_}q`(hU hhZubah hVubh5Xr . The user may substitute the pixel class with one of their
own, and, as long as it satisfies the requirements of qa…qb}qc(hXr . The user may substitute the pixel class with one of their
own, and, as long as it satisfies the requirements of hh:ubhN)qd}qe(hX ``PixelConcept``h"}qf(h$]h%]h&]h']h)]uhh:h]qgh5X PixelConceptqh…qi}qj(hU hhdubah hVubh5Xd ,
all other GIL classes and algorithms can be used with it.
See more about concepts is avaialble at
qk…ql}qm(hXd ,
all other GIL classes and algorithms can be used with it.
See more about concepts is avaialble at
hh:ubcdocutils.nodes
reference
qn)qo}qp(hXŠ `Generic Programming in ConceptC++ `_h"}qq(UnameX! Generic Programming in ConceptC++UrefuriqrXc https://web.archive.org/web/20160324115943/http://www.generic-programming.org/languages/conceptcpp/qsh']h&]h$]h%]h)]uhh:h]qth5X! Generic Programming in ConceptC++qu…qv}qw(hU hhoubah U referenceqxubcdocutils.nodes
target
qy)qz}q{(hXf U
referencedq|Khh:h Utargetq}h"}q~(Urefurihsh']qhah&]h$]h%]h)]q€hauh]ubeubh9)q}q‚(hXÉ In this document we will use a syntax for defining concepts that is described
in the C++ standard proposal paper
`[N2081] Concepts `_.hhhhh h