This commit is contained in:
2025-10-25 03:02:53 +03:00
commit 043225d523
3416 changed files with 681196 additions and 0 deletions

49
cppdraft/fs/req.md Normal file
View File

@@ -0,0 +1,49 @@
[fs.req]
# 31 Input/output library [[input.output]](./#input.output)
## 31.12 File systems [[filesystems]](filesystems#fs.req)
### 31.12.3 Requirements [fs.req]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L13241)
Throughout subclause [[filesystems]](filesystems "31.12File systems"), char, wchar_t, char8_t,char16_t, and char32_t are collectively called[*encoded character types*](#def:encoded_character_type "31.12.3Requirements[fs.req]")[.](#1.sentence-1)
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L13246)
Functions with template parameters named EcharT shall not participate in overload resolution
unless EcharT is one of the encoded character types[.](#2.sentence-1)
[3](#3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L13251)
Template parameters named InputIterator shall meet the[*Cpp17InputIterator*](input.iterators#:Cpp17InputIterator "24.3.5.3Input iterators[input.iterators]") requirements ([[input.iterators]](input.iterators "24.3.5.3Input iterators")) and shall
have a value type that is one of the encoded character types[.](#3.sentence-1)
[4](#4)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L13256)
[*Note [1](#note-1)*:
Use of an encoded character type implies an associated
character set and encoding[.](#4.sentence-1)
Since signed char and unsigned char have no
implied character set and encoding,
they are not included as permitted types[.](#4.sentence-2)
— *end note*]
[5](#5)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L13265)
Template parameters named Allocator shall meet
the [*Cpp17Allocator*](allocator.requirements.general#:Cpp17Allocator "16.4.4.6.1General[allocator.requirements.general]") requirements ([[allocator.requirements.general]](allocator.requirements.general "16.4.4.6.1General"))[.](#5.sentence-1)