# format (mwx::mwx\_format)

`mwx::stream` の << 演算子に対してフォーマット書式を書き出すヘルパークラスです。ライブラリ内では `Using format=mwx::mwx_format;` として別名定義しています。

```cpp
Serial << format("formatted print: %.2f", (double)3123 / 100.) << mwx::crlf;

// formatted print: 31.23[改行]
```

{% hint style="warning" %}
可変数引数リストに登録できる引数は最大４つ。
{% endhint %}

* コンストラクタで受け取った引数リストを、パラメータパックの展開機能を用いてクラス内部変数に格納する
* `operator <<` が呼び出された時点で、`fctprintf()` を呼び出し、ストリームにデータを書き出す

### コンストラクタ

```cpp
format(const char *fmt, ...)
```

コンストラクタでは、書式のポインタとパラメータを保存します。続く `<<`演算子による呼び出しでフォーマットを解釈して出力処理を行います。

| パラメータ | 解説                                                                                                          |
| ----- | ----------------------------------------------------------------------------------------------------------- |
| `fmt` | <p>フォーマット書式。</p><p>TWESDK/TWENET/current/src/printf/README.md 参照</p>                                        |
| `...` | <p>フォーマット書式に応じたパラメータ。<br>※ 最大数は４で、５つ以上のパラメータではコンパイルエラーとなる。</p><p>※ 書式との整合性はチェックしないため、不整合な入力に対しては安全ではない。</p> |

{% hint style="warning" %}
`fmt`は本オブジェクトが破棄されるまで、アクセス可能であることが必要です。
{% endhint %}
