C++の難しめな用語集
概要
先日、言いたい用語がすぐに出てこなかったので備忘録を作った。私が学習するのが遅かったり難しかったものを集めた。
その特性から多くは語らないのでググって。
Return Value Optimization (RVO)
- Named Return Value Optimization(NRVO)
データ指向設計 (Data Oriented Design)
- キャッシュライン
Perfect Forwarding
引数と全く同じ型を伝搬させるという説明が一番分かりやすかった。
universal reference
- Rvalue
- Lvalue
Template MetaProgramming(TMP)
メインの機能はconceptに代替されそう。
- Substitution Failure Is Not An Error(SFINAE)
Type Erasure
Argument Dependent Lookup(ADL)
安易にusing namespaceしてると引っかかるやつ。
unqualified name look up
Unqualified name lookup - cppreference.com
One Definition Rule(ODR)
- ODR違反
- odr-use
- リンケージ
Application Binary Interface(ABI)
C++ではないが。
Most vexing parse
レイアウト
- Plain Old Data(POD) C++20からtrivial classとして扱う
- standard-layout class
- trivial class
Rust
Rustも同じレベルのプログラミングができるので、Rustの概念を用いてC++の概念を説明しても良いはず。
- LifeTime
- Ownership
規格
- Working Draft
- well-formed
- undefined behavior
C++er は“合法”だとか“違法”だとか言いたくて仕方がないけれど、結局どういう意味? それより適合・適格・○○動作・○○規則・診断不要いろいろの関係が謎
ガイドライン
- Guideline Support Library (GSL)