Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 26 additions & 3 deletions docs/standardization/cppx.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# C++23 以降に向けた提案

議論が進行中のおもな提案です。標準化会議によって規格化が妥当でないと判断された場合は採択されません。

## 標準ライブラリ モジュール
Expand All @@ -18,9 +17,33 @@ Motivation, Scope, and Basic Design (P1386)](https://wg21.link/p1386)

音声再生・録音を行う低レベル API `std::audio` を追加する提案です。以前頓挫した 2D Graphics API の標準化に比べれば、枯れている技術なので実現可能性は低くはなさそうです。波形データをオーディオデバイスとやり取りすることが主要な役割で、音声コーデックやフィルタなどの機能は提供しません。[実験的な実装を公開](https://github.com/stdcpp-audio/libstdaudio)して、設計に関するフィードバックを集めている段階です。

## Executors

## ネットワーク
- [Working Draft, C++ Extensions for Networking (N4734)](https://wg21.link/n4734)

ネットワーク機能を標準ライブラリに導入する提案です。[Boost.Asio](https://www.boost.org/doc/libs/release/doc/html/boost_asio.html) をベースに、ソケット通信、名前解決、インターネットプロトコル、タイマー、バッファ、非同期処理のための各種機能を実装する予定です。

## リフレクション
- [Working Draft, C++ Extensions for Reflection (N4766)](https://wg21.link/n4766)

C++ にリフレクションを導入する提案です。C# のような動的なリフレクションではなく、コンパイル時に情報を取得する静的なリフレクションです。

```C++
#include <experimental/reflect>

using namespace std::experimental::reflect;

constexpr void f(int arg1, int arg2);

using f_mobj = reflexpr(f(0, 1));

auto name = get_name_v<get_element_t<0, get_parameters_t<f_mobj>>>; // "arg1"

auto is_constexpr_function = is_constexpr<f_mobj>::value; // true
```

この機能を前提とした[メタクラスの提案](https://wg21.link/p0707)も議論が進んでいます。

## Executors