Files
cppdraft_translate/cppdraft/fs/req.md
2025-10-25 03:02:53 +03:00

50 lines
2.0 KiB
Markdown
Raw 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.

[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)