STL的(人)的for循環範圍內最近的提議隱式汽車& &讓我不知道它的正確方法迭代和修改序列的元素自動&或自動&&優選用於基於範圍的foor循環修改範圍?
for(auto&& elem: cont)
{
}
或
for(auto& elem: cont)
{
}
STL的(人)的for循環範圍內最近的提議隱式汽車& &讓我不知道它的正確方法迭代和修改序列的元素自動&或自動&&優選用於基於範圍的foor循環修改範圍?
for(auto&& elem: cont)
{
}
或
for(auto& elem: cont)
{
}
有不是「適當」的東西;這取決於您正在迭代的內容以及您想要對每個迭代進行的操作。
兩者相當;在第一種情況下,「參考摺疊」意味着elem
的類型變爲左值參考,因爲它的初始值是左值。我會說第二個更「正確」,因爲它表達了實際發生的事情。
(除非像在重複的回答中指出,集裝箱突破容器要求std::vector<bool>
確實,有reference
類型實際上不是引用類型。在這種情況下,首先會結合elem
到一個臨時而第二個則不會編譯)。
http://stackoverflow.com/a/13130795/700825 – NoSenseEtAl
@NoSenseEtAl:足夠公平,我沒有考慮像'std :: vector
關於矢量
或者[適用於基於範圍的聲明的適當樣式](http://stackoverflow.com/questions/9994789/proper-style-for-declaration-基於範圍的-for) – MatthiasB
右值引用是一個正常引用,它也可以綁定到temporary_。你看到一個臨時? – Damon