From Jason Turner

[char.traits.specializations.char]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpee8jf16f/{from.md → to.md} +8 -19
tmp/tmpee8jf16f/{from.md → to.md} RENAMED
@@ -6,50 +6,39 @@ namespace std {
6
  using char_type = char;
7
  using int_type = int;
8
  using off_type = streamoff;
9
  using pos_type = streampos;
10
  using state_type = mbstate_t;
 
11
 
12
  static constexpr void assign(char_type& c1, const char_type& c2) noexcept;
13
  static constexpr bool eq(char_type c1, char_type c2) noexcept;
14
  static constexpr bool lt(char_type c1, char_type c2) noexcept;
15
 
16
  static constexpr int compare(const char_type* s1, const char_type* s2, size_t n);
17
  static constexpr size_t length(const char_type* s);
18
  static constexpr const char_type* find(const char_type* s, size_t n,
19
  const char_type& a);
20
- static char_type* move(char_type* s1, const char_type* s2, size_t n);
21
- static char_type* copy(char_type* s1, const char_type* s2, size_t n);
22
- static char_type* assign(char_type* s, size_t n, char_type a);
23
 
24
  static constexpr int_type not_eof(int_type c) noexcept;
25
  static constexpr char_type to_char_type(int_type c) noexcept;
26
  static constexpr int_type to_int_type(char_type c) noexcept;
27
  static constexpr bool eq_int_type(int_type c1, int_type c2) noexcept;
28
  static constexpr int_type eof() noexcept;
29
  };
30
  }
31
  ```
32
 
33
- The defined types for `int_type`, `pos_type`, `off_type`, and
34
- `state_type` shall be `int`, `streampos`, `streamoff`, and `mbstate_t`
35
- respectively.
36
-
37
- The type `streampos` shall be an *implementation-defined* type that
38
- satisfies the requirements for `pos_type` in  [[iostreams.limits.pos]]
39
- and [[iostream.forward]].
40
-
41
- The type `streamoff` shall be an *implementation-defined* type that
42
- satisfies the requirements for `off_type` in  [[iostreams.limits.pos]]
43
- and [[iostream.forward]].
44
-
45
  The type `mbstate_t` is defined in `<cwchar>` and can represent any of
46
  the conversion states that can occur in an *implementation-defined* set
47
  of supported multibyte character encoding rules.
48
 
49
- The two-argument member `assign` shall be defined identically to the
50
- built-in operator `=`. The two-argument members `eq` and `lt` shall be
51
- defined identically to the built-in operators `==` and `<` for type
52
  `unsigned char`.
53
 
54
- The member `eof()` shall return `EOF`.
55
 
 
6
  using char_type = char;
7
  using int_type = int;
8
  using off_type = streamoff;
9
  using pos_type = streampos;
10
  using state_type = mbstate_t;
11
+ using comparison_category = strong_ordering;
12
 
13
  static constexpr void assign(char_type& c1, const char_type& c2) noexcept;
14
  static constexpr bool eq(char_type c1, char_type c2) noexcept;
15
  static constexpr bool lt(char_type c1, char_type c2) noexcept;
16
 
17
  static constexpr int compare(const char_type* s1, const char_type* s2, size_t n);
18
  static constexpr size_t length(const char_type* s);
19
  static constexpr const char_type* find(const char_type* s, size_t n,
20
  const char_type& a);
21
+ static constexpr char_type* move(char_type* s1, const char_type* s2, size_t n);
22
+ static constexpr char_type* copy(char_type* s1, const char_type* s2, size_t n);
23
+ static constexpr char_type* assign(char_type* s, size_t n, char_type a);
24
 
25
  static constexpr int_type not_eof(int_type c) noexcept;
26
  static constexpr char_type to_char_type(int_type c) noexcept;
27
  static constexpr int_type to_int_type(char_type c) noexcept;
28
  static constexpr bool eq_int_type(int_type c1, int_type c2) noexcept;
29
  static constexpr int_type eof() noexcept;
30
  };
31
  }
32
  ```
33
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  The type `mbstate_t` is defined in `<cwchar>` and can represent any of
35
  the conversion states that can occur in an *implementation-defined* set
36
  of supported multibyte character encoding rules.
37
 
38
+ The two-argument member `assign` is defined identically to the built-in
39
+ operator `=`. The two-argument members `eq` and `lt` are defined
40
+ identically to the built-in operators `==` and `<` for type
41
  `unsigned char`.
42
 
43
+ The member `eof()` returns `EOF`.
44