More Related Content
PDF
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ PDF
PDF
PDF
PDF
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法 PDF
PPTX
PDF
What's hot
PDF
PDF
ARM CPUにおけるSIMDを用いた高速計算入門 PDF
PPTX
PDF
PDF
競技プログラミングにおけるコードの書き方とその利便性 PDF
中3女子が狂える本当に気持ちのいい constexpr PDF
いまさら聞けないarmを使ったNEONの基礎と活用事例 PDF
20分くらいでわかった気分になれるC++20コルーチン PDF
PDF
PDF
PPT
PPTX
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編 PDF
PDF
C++20 モジュールの概要 / Introduction to C++ modules (part 1) PDF
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの? PDF
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略 PDF
【Unite Tokyo 2019】Understanding C# Struct All Things PDF
More from 京大 マイコンクラブ
PDF
PDF
PDF
ドット絵でプログラミング!難解言語『Piet』勉強会 PDF
PPTX
PDF
PDF
PDF
ODP
PDF
PDF
PDF
PDF
PDF
PDF
PPTX
PDF
PDF
No SSH (@nojima; KMC関東例会) PDF
PDF
Constexprとtemplateでコンパイル時にfizz buzz
- 1.
- 2.
自己紹介
• KMC ID:dtyazsk
•所属:理学部1回(数学系志望)
• 普段やってること:プログラミング/DTM/お絵描き
• 趣味:弾幕STG(東方project/怒首領蜂シリーズ)/音ゲー(エニビ/BMS)
• よく使うプログラミング言語:C++
• twitterやってます(@DtYaZsK)
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
リテラル型について
• intとかdoubleのような型はリテラル型の元となる
• ポインタ(全て)や参照型(リテラル型のみ)もリテラル型となる
•以下の条件を満たすクラス(または構造体)はリテラル型となる
• trivialデストラクタを持つ
• ユーザー定義デストラクタを作らなければいい話
• 非staticなメンバの初期化子とコンストラクタ呼び出しが全て定数式
• aggregateであるか
またはコピーでもムーブでもないconstexprコンストラクタが1つ以上
• aggregateとはユーザー定義コンストラクタも非staticメンバに初期化子への初期化子も
基本クラスも仮想関数もなく全てのメンバがpublicな配列またはクラスのこと
• 非staticメンバと基底クラスが全てリテラル型
• constexpr定数にできる
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
参考資料その1
• TECHSCORE BLOG
C++で静的配列の要素数を求めるテンプレート関数
•http://www.techscore.com/blog/2013/02/08/how-to-calculate-array-length-in-cand-cpp/
• 本の虫
aggregateと初期化リストの不思議
• http://cpplover.blogspot.jp/2010/09/aggregate.html
• ボレロ村上 – EniyGmaA Code
リテラル型クラスの条件、および「中3女子でもわかる constexpr」の訂正
• http://d.hatena.ne.jp/boleros/20130718/1374155184
- 36.
参考資料その2
• 中3女子でもわかる constexpr
•http://www.slideshare.net/GenyaMurakami/constexpr-10458089
• 中3女子が狂える本当に気持ちのいい constexpr
• http://www.slideshare.net/GenyaMurakami/constexpr-11509325
• Constexpr 中3女子テクニック ー実践と濫用そしてC++14へ
• http://www.slideshare.net/GenyaMurakami/constexpr-23355469
- 37.
- 38.