エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Rustの可変長引数関数とHListの話 - 逆さまにした
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Rustの可変長引数関数とHListの話 - 逆さまにした
この記事は Rust Advent Calendar 2020 の5日目の記事です。 背景 RFCs#2137にあるようにRustでは、可変... この記事は Rust Advent Calendar 2020 の5日目の記事です。 背景 RFCs#2137にあるようにRustでは、可変長引数関数を直接的に書くことはできません。とはいえ全くできないわけではありません。C言語から可変長引数関数呼び出しを実現するため、stub関数を記述することは可能です。例えば、以下のような関数をRustで実装します。 pub unsafe extern "C" fn func(arg: T, arg2: U, mut args: ...) { // do something } このような関数はuse extern "C"の中で使われ、unsafeを付与する必要があります。 別の実現方法としてはマクロを利用する案もあり、以下のようなマクロで実現できるでしょう。以下はargとarg2を処理し、再帰的に可変長引数に相当するargsを処理する例です。 mac