#include
using namespace std;
int main(void){
list a,b,c;
for(auto& l:{a,b,c}) l.sort();
}
< /code>
Производство < /p>
aa.cpp:5:25: error: no matching member function for call to 'sort'
for(auto& l:{a,b,c}) l.sort();
~~^~~~
/usr/bin/../lib64/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_list.h
candidate function not viable: 'this' argument has type 'const
std::list', but method is not marked const
sort();
^
/usr/bin/../lib64/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_list.h
candidate function template not viable: requires 1 argument, but 0 were
provided
sort(_StrictWeakOrdering);
^
1 error generated.
< /code>
Я правильно догадаюсь, что Brace initializer создает копию этих списков? И есть ли способ не копировать их, и сделать их изменяемыми внутри цикла? (кроме того, чтобы сделать список указателей на них, что является моим текущим обходным пути).
Подробнее здесь: https://stackoverflow.com/questions/317 ... nst-values