Files
2025-10-25 03:02:53 +03:00

55 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[container.intro.reqmts]
# 23 Containers library [[containers]](./#containers)
## 23.2 Requirements [[container.requirements]](container.requirements#container.intro.reqmts)
### 23.2.2 General containers [[container.requirements.general]](container.requirements.general#container.intro.reqmts)
#### 23.2.2.1 Introduction [container.intro.reqmts]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L77)
In [[container.requirements.general]](container.requirements.general "23.2.2General containers"),
- [(1.1)](#1.1)
X denotes a container class containing objects of type T,
- [(1.2)](#1.2)
a denotes a value of type X,
- [(1.3)](#1.3)
b and c denote values of type (possibly const) X,
- [(1.4)](#1.4)
i and j denote values of type (possibly const) X::iterator,
- [(1.5)](#1.5)
u denotes an identifier,
- [(1.6)](#1.6)
v denotes an lvalue of type (possibly const) X or
an rvalue of type const X,
- [(1.7)](#1.7)
s and t denote non-const lvalues of type X, and
- [(1.8)](#1.8)
rv denotes a non-const rvalue of type X[.](#1.sentence-1)
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L99)
The following exposition-only concept is used in the definition of containers:template<class R, class T>concept [*container-compatible-range*](#concept:container-compatible-range "23.2.2.1Introduction[container.intro.reqmts]") = // *exposition only* ranges::[input_range](range.refinements#concept:input_range "25.4.6Other range refinements[range.refinements]")<R> && [convertible_to](concept.convertible#concept:convertible_to "18.4.4Concept convertible_­to[concept.convertible]")<ranges::range_reference_t<R>, T>;