puddingプログラミングの記事がメインのブログです。Programmingスポンサードリンクもはやタイトルから脱線しかかってきました。C++11がらみのお話です。RVO/NRVOはC++03でも使える...というかコンパイラ依存です。いってもよほどマイナーかとても古いものを使っていなければサポートされているというところでしょうか。gccは大丈夫みたい。clangは知らないけどさすがに大丈夫かと......。(id:SaitoAtsushi)さんのアドバイスをいただいて気になってもうちょっと調べてみました。手を抜いてググるだけにしています。検証しないとダメですね......。ここはブログを書いている方のお力を借りました。ここらあたりを見るとものすごく勉強になりました。関係ないお話ですがはてなでいうカード記法(embedのやつ)にできるものとそうでないのの違いはなんなんだろう・・・。関数のローカルで宣言したクラスの変数はどう返すの?上記サイト等を読んだ結果、僕の解釈では...厳密には違うのかもしれないけれど基本的にはコンパイラがうまいこと判断できる状況ではRVO/NRVOが効いて、それでもダメな場合はムーブコンストラクタが働いてくれるというように読めました。自ら定義したクラスでは自分でムーブコンストラクタ書かなきゃダメってことだけどね。結局どうすりゃいいのよ!!!std::stringを返す場合は気にしないことにしておく。自分で定義したクラスの場合は気が向いたらムーブコンストラクタを書いてあげる......。自分で定義したクラスの場合は......コピーコンストラクタ同様に暗黙に定義されるそうです。あれ、これってコピーコンストラクタと同じ状況でポインタへの変数がメンバーにある場合は......あれ?ポインタが同じ場所を指していても代入元は破棄されるから問題ないか......んんん?他に何か考慮が必要なのかな???うーんこれは調べてみよう。暗黙に定義されるのは嬉しい機能だ。何も考えないような僕のような人にも扱える言語に近づいている感はとても感じます。́Д`)ええ、そういうやつはおとなしくJavaかC#でも使え!!って話もごもっともな訳で。読んでないけど興味深い記事を見つけました。プログラミング全然関係ない話で恐縮なのですが、C++ほど言語仕様で使う側も頭を悩ませる言語は他にあるのでしょうか...。いやかなり奥が深い言語ですよね。最近は関数型言語に興味を持ち始めました。手を付けていませんが。C++11用のコーディングのお作法を解説した初心者向けの書籍が出てくれればなぁと他力本願中です。Editionとかの最新版とかそうなのかなぁ......でも日本語版出てないよね(゚Д゚;)英語だと読むスピードと効率落ちるから日本語で読みたいっす。読者になる関連記事2020-07-22C++でオブジェクトを返す関数を書いてもいいのか問題C++でオブジェクトを返す関数を書いてもいいのか問題→OKです。...2015-02-11誰得??配列の範囲外アクセスが起きないぐるぐる回る配列を作りました。ものすごくありがたい情報をいただきました。はてなブログPro睡眠プログラマーです。1引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。