Deduktionshilfen für std::set
| Definiert in Header <set> |
||
| template< class InputIt, |
(1) | (seit C++17) |
| template< class Key, class Comp = std::less<Key>, |
(2) | (seit C++17) |
| template< class InputIt, class Alloc > set( InputIt, InputIt, Alloc ) |
(3) | (seit C++17) |
| template< class Key, class Alloc > set( std::initializer_list<Key>, Alloc ) |
(4) | (seit C++17) |
| template< ranges::input_range R, class Compare = less<ranges::range_value_t<R>>, class Alloc = std::allocator<ranges::range_value_t<R>> > |
(5) | (seit C++23) |
| template< ranges::input_range R, class Alloc > set( std::from_range_t, R&&, Alloc ) |
(6) | (seit C++23) |
set bereitgestellt, um die Deduktion aus einem Iteratorbereich (Überladungen (1,3)) und std::initializer_list (Überladungen (2,4)) zu ermöglichen.set bereitgestellt, um die Deduktion aus einem std::from_range_t Tag und einem input_range zu ermöglichen.Diese Überladungen nehmen an der Überladungsauflösung teil, nur wenn InputIt LegacyInputIterator erfüllt, Alloc Allocator erfüllt und Comp Allocator nicht erfüllt.
Hinweis: Das Ausmaß, bis zu dem die Bibliothek feststellt, dass ein Typ LegacyInputIterator nicht erfüllt, ist nicht spezifiziert, außer dass als Minimum ganzzahlige Typen nicht als Eingabeiteratoren qualifiziert sind. Ebenso ist das Ausmaß, bis zu dem sie feststellt, dass ein Typ Allocator nicht erfüllt, nicht spezifiziert, außer dass als Minimum der Mitgliedstyp Alloc::value_type existieren muss und der Ausdruck std::declval<Alloc&>().allocate(std::size_t{}) gut gebildet sein muss, wenn er als nicht ausgewerteter Operand behandelt wird.
[bearbeiten] Anmerkungen
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges |
202202L |
(C++23) | Bereichsbezogene Konstruktion und Einfügung; Überladung (5,6) |