constexpr を使うべき5の理由 - まとめ&リンク集
「constexpr を使うべき5の理由」の連載をひとまず終えたので、記事の一覧をここにまとめておきます。
また、その他の資料や情報へのリンクを載せておきますので、更に興味あるという方は読んでみるのもよいでしょう。
constexpr を使うべき5の理由
なぜあなたは const 修飾よりも constexpr 指定をするべきか。
「市民、あなたは constexpr ですか」
「もちろんです、C++。constexpr であることは市民の義務です」
参照透明な世界に行きたい。
型には TMP、値には constexpr。
その他の資料
下記は、自分が Boost.勉強会で発表したスライドを SlideShare にあげたものです。
こちらでは constexpr の実装技法や落とし穴等を中心に解説しています。
-
- はじめに
- constexprとは?
- constexpr実装技法
- constexprの3大コスト
- constexprライブラリを使ってみる
- まとめ
-
- はじめに
- constexprおさらい
- constexprとTMPの連携
- (続)constexprレイトレーシング
- まとめ
constexpr ライブラリ
constexpr を活用したライブラリです。
ここに挙げているものの他にも面白いライブラリがありましたら、ぜひ報告お願いします。
自作のライブラリ。constexpr に対応したコンテナ、アルゴリズム、乱数、構文解析、レイトレーシング、その他の機能を提供。
「constexpr を使うべき5の理由」の中でもいくつかのコードで使用しています。
id:RiSK 氏によるライブラリ。STL の Non-modifying なアルゴリズムの constexpr 版などを提供。
constexpr ライブラリの先駆けでもあり、Sprout にもその実装の多くを(氏の許可を得て)取り込んでいます。
Ábel Sinkovics 氏による Boost.MPL を拡張するライブラリ。
テンプレートベースながら実装に constexpr を利用しており、Boost にも提案されている。
constexpr 有識者のブログ
CEL の作者である、よく訓練されたしーぷらぷらー id:RiSK 氏のブログ。
constexpr 関数におけるエラーハンドリングなど、興味深い考察を多く書かれています。
Sprout のコミッタかつ Vimmer である id:osyo-manga 氏のブログ。
Sprout を活用した example をはじめ C++ や Vim の豊富な記事を書かれています。
C++標準化委員会メンバーであり、自由ソフトウェア主義者たる江添亮氏のブログ。
constexpr の規格策定の経緯や標準準拠の動作について詳細な情報を書かれています。
Sumant Tambe 氏のブログ。
シンプルなコンパイル時正規表現マッチャーなど、様々なアイディアを取り上げています。