可能性の重複:
constant references with typedef and templates in c++負け
次のコードを見てください:
typedef wstring& RT;
RT Change(const RT v)
{
v += L"234"; // why can I change this argument???
return v;
}
int _tmain(int argc, _TCHAR* argv[])
{
wstring str = L"111";
wstring &str2 = Change(str);
return 0;
}
私はその引数 'V' で驚きました「変更」機能を変更することができます。私たちは 'const'修飾子を失います。 std :: add_constのようなメタ関数は役に立ちません、あなたはそのような動作を説明できますか?
ツール:VS2010
私は「正確な重複」に同意しません。答えは本質的に同じですが、もう1つの質問は、テンプレートがすべてtypedefingになったときに問題の一部であることを意味します。その理由から、このバージョンの質問は、人々の検索に多くの利益をもたらすかもしれません。 –