Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rustで定数式を扱う

 Rustで定数式を扱う

C5e26822fb2aa64410b50eac63ef7d84?s=128

Kazumasa Yamamoto

October 27, 2020
Tweet

Transcript

  1. Rustで定数式を扱う ユニークビジョン株式会社 山本 一将

  2. 自己紹介 2 ⚫ 名前:山本 一将(@kyamamoto9120) ⚫ 所属:ユニークビジョン株式会社 ⚫ 言語:C++, Rust,

    Python, Ruby ⚫ 趣味:将棋、キャンプ、DIY、野球観戦 ⚫ 実績:2015年 世界コンピュータ将棋選手権9位
  3. アジェンダ 3 ① 定数式とは何か ② Rustの定数式の状況 ③ 簡単な使用方法(フィボナッチ数列を例に)

  4. 定数式とは 4 • コンパイル時に評価可能な式のこと • Rustでは const fn で始まる関数が定数式となる

  5. Rustにおける定数式 5 ① 1.31.0から導入 • ローカル変数が使えない • ループ文、制御文が使えない • 引数を&mutにできない

    ② 1.46.0までに徐々に制限緩和 • ローカル変数が使える! • matchやwhileが使える!
  6. 現時点での制限 6 ① for文は使えない ② 評価できる式の深さに制限がある

  7. まとめ 7 ⚫ 制限が一部緩和されたがまだまだ実用レベルではない • 自由度はまだC++14のconstexprにも届かない • 標準ライブラリの対応もまだまだ ⚫ 当面はlazy_static!を使用した方が幸せ

    ⚫ それでも1.46.0での制限緩和は希望がある!
  8. ありがとうございました