memcpy/memset/memmoveを使う際の注意点
TriviallyCopyableでないオブジェクトに使うと未定義動作になるので使ってはいけない。 使う場合はstd::is_trivially_copyable_vで未定義動作にならない型なのかをチェックしてから使うの…
TriviallyCopyableでないオブジェクトに使うと未定義動作になるので使ってはいけない。 使う場合はstd::is_trivially_copyable_vで未定義動作にならない型なのかをチェックしてから使うの…
そもそも何のためにあるのかよくわからん。 変更しない文字列を参照する際の、コピーコスト削減が目的? string_viewの末尾にはヌル文字が付与されないんだったっけ? というのが問題ないっぽいので、string_vie…
配列を含むvectorをv2 = v1でコピーしたら、要素毎にコピーコンストラクタが実行され、メンバ変数nameの全要素もコピーされているので、コピー元を書き換えても問題ないっぽい。 nameの先頭ポインタだけがコピーさ…
ポストプロセス 画像を画面に表示する前に、カメラの画像バッファにフルスクリーンのフィルターとエフェクトを適用する処理。 メッシュ ポリゴンメッシュのこと。 3次元コンピュータグラフィックスとソリッドモデリングの多面体オブ…
ラムダ式から作成した関数オブジェクトのことをクロージャと呼ぶ。 実用上は、ラムダ式とクロージャを区別する必要がある場面は限られるため、どちらもラムダと考えてよい。
関数hogeの代入で、aがbの参照となり、実行結果におけるbの出力が2になるかと思ったが、そんなことはなかった。 ただのコピーとなる。
イメージとしては代入される側が、渡された変数(の型)にバインドされるという。 型の紐づけができないケースはバインドできないという。
unique_ptrから生ポインタを取得して、メンバ変数に保持するのは、生存管理ができなくなるので、やめた方がいい。 一時変数として使う分には、まだ許容できる場合あり。 この場合、shared_ptrを使えば生存管理でき…
みたいな形で、std::moveを指定して、vectorに所有権を移す必要がある。 ちなみに、「v.push_back(ptr);」とすると、ビルドが通らなくなる。
一般的な用語ではなく、Effective Modern C++の造語っぽい。 通常の右辺値参照T&&が、右辺値のみしかバインドできないのに対し、ユニヴァーサル参照は、どんなものもバインド可能。 ユニヴァー…
最近のコメント