Skip to content

Commit

Permalink
P2418R2対応 : 関数のインターフェースと事前条件の部分の変更のみ適用
Browse files Browse the repository at this point in the history
BasicFormatter要件への変更とかのところは未適用
  • Loading branch information
onihusube committed Aug 2, 2023
1 parent 4e2bdcd commit 5539a02
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 20 deletions.
9 changes: 5 additions & 4 deletions reference/format/format.md
Expand Up @@ -8,16 +8,16 @@
```cpp
namespace std {
template<class... Args>
string format(format_string<Args...> fmt, const Args&... args); // (1)
string format(format_string<Args...> fmt, Args&&... args); // (1)

template<class... Args>
wstring format(wformat_string<Args...> fmt, const Args&... args); // (2)
wstring format(wformat_string<Args...> fmt, Args&&... args); // (2)

template<class... Args>
string format(const locale& loc, format_string<Args...> fmt, const Args&... args); // (3)
string format(const locale& loc, format_string<Args...> fmt, Args&&... args); // (3)

template<class... Args>
wstring format(const locale& loc, wformat_string<Args...> fmt, const Args&... args); // (4)
wstring format(const locale& loc, wformat_string<Args...> fmt, Args&&... args); // (4)
}
```
* string[link /reference/string/basic_string.md]
Expand Down Expand Up @@ -615,3 +615,4 @@ wstring format(const locale& loc, wformat_string<Args...> fmt, const Args&... ar
- [[C++] std::formatあるいは{fmt}のコンパイル時フォーマット文字列チェックの魔術 - 地面を見下ろす少年の足蹴にされる私](https://onihusube.hatenablog.com/entry/2021/07/01/195912)
- [P2286R8 Formatting Ranges](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2286r8.html)
- C++23から、Range・コンテナ、`pair``tuple`のフォーマット出力、および文字・文字列のデバッグ指定 (`"?"`) が追加された
- [P2418R2 Add support for `std::generator`-like types to `std::format`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2418r2.html)
10 changes: 6 additions & 4 deletions reference/format/format_to.md
Expand Up @@ -8,16 +8,16 @@
```cpp
namespace std {
template<class Out, class... Args>
Out format_to(Out out, format_string<Args...> fmt, const Args&... args); // (1)
Out format_to(Out out, format_string<Args...> fmt, Args&&... args); // (1)

template<class Out, class... Args>
Out format_to(Out out, wformat_string<Args...> fmt, const Args&... args); // (2)
Out format_to(Out out, wformat_string<Args...> fmt, Args&&... args); // (2)

template<class Out, class... Args>
Out format_to(Out out, const locale& loc, format_string<Args...> fmt, const Args&... args); // (3)
Out format_to(Out out, const locale& loc, format_string<Args...> fmt, Args&&... args); // (3)

template<class Out, class... Args>
Out format_to(Out out, const locale& loc, wformat_string<Args...> fmt, const Args&... args); // (4)
Out format_to(Out out, const locale& loc, wformat_string<Args...> fmt, Args&&... args); // (4)
}
```
* format_string[link basic_format_string.md]
Expand Down Expand Up @@ -158,3 +158,5 @@ wstring format_to(Out out, const locale& loc, wformat_string<Args...> fmt, const
* [P0645R10 Text Formatting](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html)
* [P2216R3 std::format improvements](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2216r3.html)
* [[C++] std::formatあるいは{fmt}のコンパイル時フォーマット文字列チェックの魔術 - 地面を見下ろす少年の足蹴にされる私](https://onihusube.hatenablog.com/entry/2021/07/01/195912)
* [P2418R2 Add support for `std::generator`-like types to `std::format`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2418r2.html)
11 changes: 6 additions & 5 deletions reference/format/format_to_n.md
Expand Up @@ -12,30 +12,30 @@ namespace std {
format_to_n(Out out,
iter_difference_t<Out> n,
format_string<Args...> fmt,
const Args&... args); // (1)
Args&&... args); // (1)

template<class Out, class... Args>
format_to_n_result<Out>
format_to_n(Out out,
iter_difference_t<Out> n,
wformat_string<Args...> fmt,
const Args&... args); // (2)
Args&&... args); // (2)

template<class Out, class... Args>
format_to_n_result<Out>
format_to_n(Out out,
iter_difference_t<Out> n,
const locale& loc,
format_string<Args...> fmt,
const Args&... args); // (3)
Args&&... args); // (3)

template<class Out, class... Args>
format_to_n_result<Out>
format_to_n(Out out,
iter_difference_t<Out> n,
const locale& loc,
wformat_string<Args...> fmt,
const Args&... args); // (4)
Args&&... args); // (4)
}
```
* format_string[link basic_format_string.md]
Expand Down Expand Up @@ -77,7 +77,7 @@ cout << buffer; // The answer is 42.
`charT``decltype(fmt)::value_type`として、

* `out``OutputIterator<const charT&>`を満たす型の有効なオブジェクトである。
* `Args`のそれぞれの引数`Ti`に対応するフォーマッター`formatter<Ti, charT>``Formatter`要件を満たす。
* `Args`のそれぞれの引数`Ti`に対応するフォーマッター`formatter<remove_cvref_t<Ti>, charT>``BasicFormatter`要件を満たす。

## 戻り値

Expand Down Expand Up @@ -127,3 +127,4 @@ The answer is 42.
* [P0645R10 Text Formatting](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html)
* [P2216R3 std::format improvements](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2216r3.html)
* [[C++] std::formatあるいは{fmt}のコンパイル時フォーマット文字列チェックの魔術 - 地面を見下ろす少年の足蹴にされる私](https://onihusube.hatenablog.com/entry/2021/07/01/195912)
* [P2418R2 Add support for `std::generator`-like types to `std::format`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2418r2.html)
11 changes: 6 additions & 5 deletions reference/format/formatted_size.md
Expand Up @@ -8,16 +8,16 @@
```cpp
namespace std {
template<class... Args>
size_t formatted_size(format_string<Args...> fmt, const Args&... args); // (1)
size_t formatted_size(format_string<Args...> fmt, Args&&... args); // (1)

template<class... Args>
size_t formatted_size(wformat_string<Args...> fmt, const Args&... args); // (2)
size_t formatted_size(wformat_string<Args...> fmt, Args&&... args); // (2)

template<class... Args>
size_t formatted_size(const locale& loc, format_string<Args...> fmt, const Args&... args); // (3)
size_t formatted_size(const locale& loc, format_string<Args...> fmt, Args&&... args); // (3)

template<class... Args>
size_t formatted_size(const locale& loc, wformat_string<Args...> fmt, const Args&... args); // (4)
size_t formatted_size(const locale& loc, wformat_string<Args...> fmt, Args&&... args); // (4)
}
```
* format_string[link basic_format_string.md]
Expand Down Expand Up @@ -48,7 +48,7 @@ formatted_size("The answer is {}.", 42); // => 17

`charT``decltype(fmt)::value_type`として、

* `Args`のそれぞれの引数`Ti`に対応するフォーマッター`formatter<Ti, charT>``Formatter`要件を満たす。
* `Args`のそれぞれの引数`Ti`に対応するフォーマッター`formatter<remove_cvref_t<Ti>, charT>``BasicFormatter`要件を満たす。

## 戻り値

Expand Down Expand Up @@ -94,3 +94,4 @@ int main()
* [P0645R10 Text Formatting](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html)
* [P2216R3 std::format improvements](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2216r3.html)
* [[C++] std::formatあるいは{fmt}のコンパイル時フォーマット文字列チェックの魔術 - 地面を見下ろす少年の足蹴にされる私](https://onihusube.hatenablog.com/entry/2021/07/01/195912)
* [P2418R2 Add support for `std::generator`-like types to `std::format`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2418r2.html)
5 changes: 3 additions & 2 deletions reference/format/make_format_args.md
Expand Up @@ -8,10 +8,10 @@
```cpp
namespace std {
template<class Context = format_context, class... Args>
format_arg_store<Context, Args...> make_format_args(const Args&... args); // (1)
format_arg_store<Context, Args...> make_format_args(Args&&... args); // (1)

template<class... Args>
format_arg_store<wformat_context, Args...> make_wformat_args(const Args&... args); // (2)
format_arg_store<wformat_context, Args...> make_wformat_args(Args&&... args); // (2)
}
```
* format_arg_store[italic]
Expand Down Expand Up @@ -166,3 +166,4 @@ namespace std {
## 参照
* [P0645R10 Text Formatting](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html)
* [P2418R2 Add support for `std::generator`-like types to `std::format`](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2418r2.html)

0 comments on commit 5539a02

Please sign in to comment.