vector<int>(v1)
式はoperator=
の右側に置くことができますが、vector<int>(v1)
式を文として使用すると失敗しますVisual Studio 2010 10.0.30319.1 RTMRel。詳細なエラー情報は、次のコードのコメントにあります。なぜこれが起こるのですか?、チャプター82 「本当に能力を縮小し、実際に要素を消去するために受け入れられたイディオムを使用する」:本「101のルール、ガイドライン、およびベストプラクティスC++コーディング規約」になぜ文(v1);が失敗する
vector<int> v1;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
vector<int> v3 = vector<int>(v1); //OK, deliberately code like this.
vector<int>(v1); //error C2086: “std::vector<_Ty> v1”: redefinition
。声明があります:
container<_Type>(c).swap(c);
私は理解し、ちょうどcontainer<_Type>(c)
をテストする必要はありませんが、それは何を意味するのでしょうか?
コード行の前に4つのスペースを入れてコードとしてマークし、改行を追加してください(@ Yu Haoはあなたの現在の投稿を編集しました)ので、 – Thomas
"あなたはそれをしたいのですか?達成したいのは何ですか? –
なぜそれが有効な声明だと思いますか?どのような効果が期待されますか? – kfsone