テンプレート

[C++]特殊化?実体化??インスタンス化???明示的????部分的?????

C++のテンプレートの用語は日本語に優しくなく、似た言葉がこんがらがってよく分からなくなります。分からないのでメモしておきます。 特殊化(specialization) 明示的特殊化(explicit specialization) 完全特殊化 部分特殊化(partial specialization) …

[C++]コンセプトの5景

C++20にてついに導入されたコンセプト、書け方にムラがあるので少し整理してみます。 1. typenameの代わりに 2. 前置requires節 3. 後置requires節 ※関数のみ 4. autoによる簡略構文 ※関数のみ 5. 1と2(or 3) 4と3 全部盛り 参考文献 謝辞 1. typenameの代わ…

[C++]モジュール理論 上級編(魔境編)

※この記事はC++20を相談しながら調べる会 #2の成果です。 ※この内容はC++20より有効なものです。C++20正式策定までの間に内容が変化する可能性があります。 importとmoduleというキーワード プリプロセッサの扱い マクロのエクスポート 名前が可視でなければ…

C++コンパイル時の型をチェックできるTypeDisplayer

TypeDisplayerというものをたまたま見かけて、割と使えそうだったので試してみました。TypeDisplayerとは以下のようなコードです。 template<typename... T> struct TypeDisplayer; 一見ただのプライマリテンプレートですが、別に特殊化も何もせずこのまま使います。 int ma</typename...>…