私はこの興味深い状況にあります。
文字列を保持する構造体がたくさんあります。
struct foo
{
string mStringName;
}
vector<foo> mFoos;
文字列参照のキューもあります
queue<string&> mStringQueue;
そして最後に、const文字列を受け入れる関数があります&
void Bar(const string&);
これが状況です。
//...in some loop
currentFoo = mFoos[index];
// Queue up the string name.
mStringQueue.push(currentFoo.mStringName);
//...Later on, go through our queue and pass each one to the function.
for (int queueIndex = 0; queueIndex < mStringQueue.size(); queueIndex++)
{
Bar(mStringQueue.front());
mStringQueue.pop();
}
これにより、次のコンパイルエラーが発生します。
エラーC2664:'std :: queue <_Ty> :: push':パラメータ1を'String'から'String&(&)'に変換できません
私はdefinitleyが文字列参照などに頭を悩ませているので、助けていただければ幸いです。