Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Rustで定数式を扱う
Kazumasa Yamamoto
October 27, 2020
Programming
0
71
Rustで定数式を扱う
Kazumasa Yamamoto
October 27, 2020
Tweet
Share
More Decks by Kazumasa Yamamoto
See All by Kazumasa Yamamoto
fill9120
0
71
fill9120
0
320
fill9120
2
400
fill9120
0
120
Other Decks in Programming
See All in Programming
fancyweb
1
100
zsmb
0
100
bkuhlmann
6
710
kazuhei0108
3
960
kentatada
0
110
borkdude
1
190
ganchan11
0
180
kodetr
0
160
d_endo
1
520
kaz29
2
130
kilometer
2
290
etagwerker
1
140
Featured
See All Featured
pedronauck
652
110k
andyhume
64
3.8k
addyosmani
1346
200k
jrom
116
7.2k
cherdarchuk
73
270k
sugarenia
233
880k
mthomps
38
2.4k
jponch
103
5.1k
moore
125
21k
keavy
108
14k
brianwarren
82
4.8k
tanoku
259
24k
Transcript
Rustで定数式を扱う ユニークビジョン株式会社 山本 一将
自己紹介 2 ⚫ 名前:山本 一将(@kyamamoto9120) ⚫ 所属:ユニークビジョン株式会社 ⚫ 言語:C++, Rust,
Python, Ruby ⚫ 趣味:将棋、キャンプ、DIY、野球観戦 ⚫ 実績:2015年 世界コンピュータ将棋選手権9位
アジェンダ 3 ① 定数式とは何か ② Rustの定数式の状況 ③ 簡単な使用方法(フィボナッチ数列を例に)
定数式とは 4 • コンパイル時に評価可能な式のこと • Rustでは const fn で始まる関数が定数式となる
Rustにおける定数式 5 ① 1.31.0から導入 • ローカル変数が使えない • ループ文、制御文が使えない • 引数を&mutにできない
② 1.46.0までに徐々に制限緩和 • ローカル変数が使える! • matchやwhileが使える!
現時点での制限 6 ① for文は使えない ② 評価できる式の深さに制限がある
まとめ 7 ⚫ 制限が一部緩和されたがまだまだ実用レベルではない • 自由度はまだC++14のconstexprにも届かない • 標準ライブラリの対応もまだまだ ⚫ 当面はlazy_static!を使用した方が幸せ
⚫ それでも1.46.0での制限緩和は希望がある!
ありがとうございました