Elements of Programming

Concepts

A concept is a description of requirements on one or more types stated in terms of the existence and properties of procedures, type attributes, and type functions defined on the types.

Concept definitions PDF

AdditiveGroup
AdditiveMonoid
AdditiveSemigroup
ArchimedeanGroup
ArchimedeanMonoid
BackwardLinker
BidirectionalBifurcateCoordinate
BidirectionalIterator
BidirectionalLinker
BifurcateCoordinate
BinaryOperation
CancellableMonoid
CommutativeRing
CommutativeSemiring
DiscreteArchimedeanRing
DiscreteArchimedeanSemiring
EmptyLinkedBifurcateCoordinate
EuclideanMonoid
EuclideanSemimodule
EuclideanSemiring
ForwardIterator
ForwardLinker
FunctionalProcedure
HalvableMonoid
HomogeneousFunction
HomogeneousPredicate
IndexedIterator
Integer
Iterator
Linearizable
LinkedBifurcateCoordinate
Module
MultiplicativeGroup
MultiplicativeMonoid
MultiplicativeSemigroup
Mutable
NonnegativeDiscreteArchimedeanSemiring
Operation
OrderedAdditiveGroup
OrderedAdditiveMonoid
OrderedAdditiveSemigroup
Predicate
RandomAccessIterator
Readable
Regular
Relation
Ring
Semimodule
Semiring
Sequence
TotallyOrdered
Transformation
UnaryFunction
UnaryPredicate
Writable

Type attributes

A type attribute is a mapping from a type to a value describing some characteristic of the type.

Arity

Type functions

A type function is a mapping from a type to an affiliated type.

Codomain
DifferenceType
DistanceType
Domain
InputType
IteratorConcept
IteratorType
QuotientType
SizeType
UnderlyingType
ValueType
WeightType

Properties

A property is a predicate used in specifications to describe behavior of particular objects.

aliased
associative
asymmetric
backward_offset
bounded_range
commutative
complement_of_converse
counted_range
disjoint
distributive
equivalence
forward_offset
identity_element
increasing
inverse_operation
left_reachable
mergeable
mutable bounded range
mutable counted range
mutable weak range
not_overlapped
not_overlapped_backward
not_overlapped_forward
not_write_overlapped
partially_associative
partitioned
prime
readable_bounded_range
readable_counted_range
readable_tree
readable_weak_range
reflexive
regular_unary_function
relation_preserving
right_reachable
strict
strictly_increasing
strictly_increasing_counted_range
symmetric
total ordering
transitive
tree
weak_ordering
weak_range
writable_bounded_range
writable_counted_range
writable_weak_range
write_aliased

Techniques

transformation-action duality
operation-accumulation procedure duality
memory adaptivity
reduction to constrained subproblem