C++標準是否說std::initializer_list<T>
是對本地匿名數組的引用?如果它說,那麼我們不應該返回這樣一個對象。標準中的任何部分都這樣說?C++ 11:std :: initializer_list存儲匿名數組嗎?它是否可變?
另一個問題,是std::initializer_list<T>
可變的潛在對象?我試圖修改它:
#include <initializer_list>
int main()
{
auto a1={1,2,3};
auto a2=a1;//copy or reference?
for(auto& e:a1)
++e;//error
for(auto& e:a2)
cout<<e;
return 0;
}
但隨着錯誤編譯:錯誤:只讀參考「E」
我怎樣才能解決這個問題,如果我想更改initializer_list內部值的增量?
'initializer_list'是不可變的。 –