Witam
Mam takie pytanie, dlaczego Code::Blocks wywala ostrzeżenie o braku zgodności ze standardem w takiej sytuacji?
//nie zwracajcie uwagi na niezainicjowane zmienne bo to nie jest sednem sprawy
for(int i = 0; i < n; i++)
{
if(wszystko_ok)
{
for(int i = 0; i < x; i++) // (1) tutaj informacja o zakryciu zmiennej i z pętli zewnętrznej
...
tab[i] = wartosc; // (2) tu się czepia o "i"
}
else
tab[i] = -1; // (3) i tu się czepia o "i"
}
Dokładnie log jest taki:
|1|warning: name lookup of
i' changed| |2|warning: matches this
i' under ISO standard rules|
|3|warning: matches this `i' under old rules|
Czy taki kod jest faktycznie niezgodny ze standardem C++? Program sie kompiluje i działa zgodnie z oczekiwaniami, jednak wolałbym by jednak był z tym standardem zgodny.
No więc Panowie jak to jest?