У меня есть код ниже:
#include <vector>
#include <iostream>
int main(){
for(int& v : std::vector<int>{1,3,5,10}) {
std::cout << v << std::endl;
v++; // Does this cause undefined behavior?
}
return 0;
}
Насколько я понимаю, вектор является prvalue и не может привязываться к int&
, но этот работает правильно?
Это потому, что для цикла диапазона это просто расширение макроса и временная переменная будет создана для вектора?