È legale dichiarare una variabile di ciclo in un ciclo per cicli con lo stesso nome che utilizzo nell'istruzione espressione del ciclo? Spero che l'esempio chiarisca.Identificatore con lo stesso nome in entrambe le espressioni e dichiarazione di intervallo per
#include <iostream>
#include <vector>
struct bar {
std::vector<int> nums;
};
int main()
{
bar b;
b.nums = {1, 2, 3};
for(int b : b.nums)
std::cout << b << std::endl;
}
gcc 4.8 dà un errore mentre clang 3.2 lo consente.
Il [bug è stato segnalato a gcc] (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54430). –
@JesseGood Grazie per averlo scoperto. Ho scoperto che non ho trovato nulla su bugzilla perché stavo cercando "ranged based for" invece di "range based for". Non so come questo termine si sia manifestato nella mia testa, lo stesso errore è accaduto anche nel titolo. – inf