可能性の重複:
What’s the motivation behind having copy and direct initialization behave differently?コピー初期化はなぜですか?なぜコピーコンストラクタが必要ですか?
、コピーの初期化によって、私はそうのような意味:
struct MyStruct
{
MyStruct(int) {}
MyStruct(const MyStruct&) {}
};
MyStruct s = 5; // needs *both* the int and copy constructor
C++でのプログラミングにもかかわらず年間は、私は上記のコードを決して実現コピーコンストラクタが必要です(jogojapanのおかげで)。一時的なものはいつも除外されていたので、それが私に指摘されるまで、それが存在することさえ知らなかった(少なくとも表面的なレベルでは、最適化されているにもかかわらず)。
グーグルグーグルのかなりの量の後、私はそれがどのように動作するかの考えを得る。私の質問はなぜなのですか?
標準では、上記の例ではコピーコンストラクタが必要ないようにしていませんでしたか?このタイプの初期化でコピーコンストラクタを必要とすることが重要であることを示す特定のケース/例がありますか? のまともな説明もなしに
はなぜ事が、私はちょうど迷惑アーティファクトとしてこれを参照してください、彼らは道彼らはしているが、私は欠けていることが重要な何かがあるのならば、私はむしろ、無知ではないと思います。
コピーコンストラクタの必要性があると思われます名前を挙げて実際には[呼び出されていません](http://ideone.com/35fjAD)です。 – iammilind
@ iammilind:**コピーElision **のために呼び出す必要はありませんが、コピーコンストラクタはアクセス可能でなければなりません。基本的には、標準*でコピーコンストラクタを呼び出すことができます**利用可能である。オプティマイゼーションは標準的なものであることを保証するものではありません。 –
@JesseGood:ありがとう。これはかなり重複しているように見えます。私の考えは、他の質問に対する良い答えではありません。 – Cornstalks