std::unique_ptrへのnullptr代入
というポインタに対して、領域を確保して使用後、 とすればリソース解放されて、hogePtr_が指すものがnullptrになる。
というポインタに対して、領域を確保して使用後、 とすればリソース解放されて、hogePtr_が指すものがnullptrになる。
コンストラクタにexplicitを付与すると暗黙の型変換を禁止する。 引数が一個の時にしか使えない? 具体的には、int値を一個受け取るコンストラクタを持つ、クラスtestに対して、コンストラクタにexplicitを付与…
関数の引数として、const string& としていた箇所は string_viewに単純置換できる。 上記の内容からもわかる通り、string_viewは参照専用なので、string_viewの文字列を編集す…
設計を見直すか、おとなしくヘッダを読み込むかのどちらか。 https://qiita.com/shuheilocale/items/31923586ab495217742a
ローカル変数をstd::vectorとかのコンテナにemplace_back(std::move(変数名))で格納していいんだっけか? ローカル変数のスコープ外れても内容は保証される? 多分大丈夫だと思うが、裏付けは取っ…
TriviallyCopyableでないオブジェクトに使うと未定義動作になるので使ってはいけない。 使う場合はstd::is_trivially_copyable_vで未定義動作にならない型なのかをチェックしてから使うの…
そもそも何のためにあるのかよくわからん。 変更しない文字列を参照する際の、コピーコスト削減が目的? string_viewの末尾にはヌル文字が付与されないんだったっけ? というのが問題ないっぽいので、string_vie…
配列を含むvectorをv2 = v1でコピーしたら、要素毎にコピーコンストラクタが実行され、メンバ変数nameの全要素もコピーされているので、コピー元を書き換えても問題ないっぽい。 nameの先頭ポインタだけがコピーさ…
ラムダ式から作成した関数オブジェクトのことをクロージャと呼ぶ。 実用上は、ラムダ式とクロージャを区別する必要がある場面は限られるため、どちらもラムダと考えてよい。
関数hogeの代入で、aがbの参照となり、実行結果におけるbの出力が2になるかと思ったが、そんなことはなかった。 ただのコピーとなる。
最近のコメント